OVH Cloud OVH Cloud

Comparer 2 numeros de telephone [PH P+MySQL]

5 réponses
Avatar
Damien
Bonjour,
Je voudrais comparer un numéro de téléphone saisi dans un formulaire à
celui enregistré dans une BDD MySQL. Aucun des 2 n'est formaté, c'est à
dire qu'ils peuvent contenir : / . - des espaces etc.

Comment puis-je comparer uniquement les chiffres de ces champs ?

Merci d'avance !
Damien

5 réponses

Avatar
Philippe Chaissac
Bonjour,
Je voudrais comparer un numéro de téléphone saisi dans un formulaire à
celui enregistré dans une BDD MySQL. Aucun des 2 n'est formaté, c'est à
dire qu'ils peuvent contenir : / . - des espaces etc.

Comment puis-je comparer uniquement les chiffres de ces champs ?


Pour la valeur du formulaire, je ferais :
$juste_les_chiffres = preg_replace("/[^0-9]/i","",$tel_du_formulaire)

Pour la base de données : je refuserais de travailler sur une base
"sale" ! Qu'un utilisateur soit léger dans la saisie des données, c'est
compréhensible. Qu'un développeur admette dans ses tables des données
non formatées, non ! La moindre recherche ou comparaison (comme là) a un
coût prohibitif : il faut mettre des regexp dans le Select, ce qui est
possible je crois en MySql (cf. doc), mais cela semble tellement contre
nature (sauf cas très exceptionnels)...

Avatar
Vincent Lascaux
Comment puis-je comparer uniquement les chiffres de ces champs ?


$number = "01.23 456_7890";
echo preg_replace('/[^0-9]/', '', $number);

affiche 01234567890

--
Vincent

Avatar
Vincent Lascaux
Pour la valeur du formulaire, je ferais :
$juste_les_chiffres = preg_replace("/[^0-9]/i","",$tel_du_formulaire)


Le i c'est pour garder à la fois les chiffres en minuscule et en
majuscule... :)

--
Vincent

Avatar
Philippe Chaissac
Pour la valeur du formulaire, je ferais :
$juste_les_chiffres = preg_replace("/[^0-9]/i","",$tel_du_formulaire)



Le i c'est pour garder à la fois les chiffres en minuscule et en
majuscule... :)


Bon ben oooooooooooops :-) !

Je l'utilise tellement ce i que c'est un reflexe :-)


Avatar
Damien
(snip)

$juste_les_chiffres = preg_replace("/[^0-9]/i","",$tel_du_formulaire)


OK, merci !

Pour la base de données : je refuserais de travailler sur une base
"sale" ! Qu'un utilisateur soit léger dans la saisie des données, c'est
compréhensible. Qu'un développeur admette dans ses tables des données
non formatées, non !


Oops :) Le développeur-masqué-du-dimanche a encore frappé :)

C'est vrai que je n'ai pas fait l'effort de valider/formater mes numéros
de tél. C'est vrai aussi que ma priorité était autre que gérer des
numéro français / internationaux et les 72 façons de taper un num de tél...
OK, je vais y travailler ;)

La moindre recherche ou comparaison (comme là) a un
coût prohibitif : il faut mettre des regexp dans le Select, ce qui est
possible je crois en MySql (cf. doc), mais cela semble tellement contre
nature (sauf cas très exceptionnels)...


Et encore, je n'ai pas balancé la totalité de mon code :) Sinon, je
finirais brûlé sur la place publique, mon ordinateur purifié au napalm
et le lieu ou "j'exerce" déclaré territoire maudit :)

Y-aurait-il un site (french/englishh) qui donne un tuto sympa sur la
gestion de numéros de tél en BDD ?

M'ci en tout cas pour les conseils !
Damien (vous troiuvez pas que ça sent le brûlé ?)