Ignorer les espaces, slash et points

Fermé
Southstyle Messages postés 46 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 26 mars 2021 - 13 juil. 2016 à 10:33
 Utilisateur anonyme - 17 juil. 2016 à 21:28
Bonjour,

Des utilisateurs remplissent le champ "numéro de téléphone". Certains l'écrivent avec des points, d'autres avec des espaces, certains séparent le préfixe par un slash, et enfin, d'autres l'écrivent sans espaces ni points.
Ma question est la suivante :
Sur mon moteur de recherche (backoffice), comment puis-je faire une requête qui ignore ces caractères lorsque je recherche un numéro de téléphone ?
Je veux pouvoir entrer 0123455667 et retrouver l'utilisateur, peu importe sous quelle forme il a entré son numéro de téléphone :

012/345.56.67
0123455667
012 / 345 56 67

J'espère que ma question était suffisamment claire et qu'une bonne âme saura venir à me rescousse :-)

Merci !

2 réponses

Southstyle Messages postés 46 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 26 mars 2021
16 juil. 2016 à 11:55
Voilà, j'ai trouvé moi-même :

SELECT * FROM users WHERE [CLAUSE 1] AND (REPLACE(userphone,' ','') LIKE '%".$_POST['suserphone']."%' OR REPLACE(userphone,'.','') LIKE '%".$_POST['userphone']."%' OR REPLACE(userphone,'/','') LIKE '%".$_POST['userphone']."%')

Après on peut peut-être faire plus propre, mais au moins ça fonctionne.
0
Southstyle Messages postés 46 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 26 mars 2021
16 juil. 2016 à 16:27
En fait ça marche moyen. Car ça ne remplacera qu'une sorte de caractère.
Si la personne a écrit 012/345.56.67 et que je recherche 0123455667, la requête retournera un résultat nul.
J'ai essayé de les imbriquer, mais ça ne marche pas :

REPLACE(REPLACE(REPLACE(userphone,'/',''),'.',''),' ','') LIKE '%".$_POST['userphone']."%'
0
Bonjour,

Peut-être REMPLACER (replace) le caractère " " par "".
Enregistrer le résultat.
Ensuite REMPLACER (replace) le caractère "/" par "".

Ainsi de suite.

Enfin, lancer la query...

A+

Quand jimmy dit what'd I say, I love you baby
C'est comme qui dirait, Toute la province qui chante en anglais
0