Ignorer les espaces, slash et points

Southstyle Messages postés 46 Statut Membre -  
 Utilisateur anonyme -
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 !
A voir également:

2 réponses

Southstyle Messages postés 46 Statut Membre
 
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 Statut Membre
 
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
Utilisateur anonyme
 
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