Requete de recherche

cs_le_totophe Messages postés 51 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 26 mai 2007 - 23 nov. 2005 à 19:59
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012 - 27 nov. 2005 à 20:19
Bonsoir à tous,

je dois développer (à titre gracieux) un programme dans lequel j'ai
besoin d'enregistrer des numéros de téléphone qui peuvent être saisis
de n'importe quelle façon .

par exemple:

"04.93.00.00.00" ou encore "00 377 93 00 00 00" ou encore "0610000000", etc...

J'ai aussi besoin de faire une recherche sur ces numéros et qu'ils apparaissent comme ils ont été saisi.

par exemple:

saisie> 00.377.93.00.00.00

recherche> 00 377 93 00 00 00

affiche> 00.377.93.00.00.00

J'avais pensé en désespoir de cause à créer 2 colonnes pour 1 numéro. Par exemple une colonne valeur et une colonne valeurAffichable. Ce qui lors de la saisie de 04.93.00.00.00 enregistrerait 0493000000 dans la colonne valeur et 04.93.00.00.00 dans la colonne valeurAffichable Mais cette solution ne me plaît pas.



Si quelqu'un pouvait m'aider à me dépatouiller de ce problème ce serait vraiment super sympa. Merci d'avance

4 réponses

aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
24 nov. 2005 à 12:24
salut

pourquoi ta solution te plait pas ?

tu pourrais sinon faire stocker seulement la valeur telle qu'elld est saisie et faire une recherche comme ca :
where numero like '0%0%3%7%7%9' etc...
comme ca quel que soit le separateur utilisé, tu aura ton numero.
ca va bien marcher si les numeros on tous le meme nombre de chiffre
mais sinon tu risque d'avoir des erreur avec cette methode:
par exemple si tu cherche 37.44
tu va trouver 37.44
mais aussi 37.99.44 si il est en base !

mais si tes numeros ont tous le meme nombre de chiffres, je pense que ca devrait marcher.

mais je te conseil de faire bcp de tests !!!!
0
cs_le_totophe Messages postés 51 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 26 mai 2007 2
24 nov. 2005 à 15:16
Salut,

en fait cette solution ne me plait pas car je la trouve un peu bourrin:
pour chaque numéro ajouté rééllement on en ajoute physiquement 2 ce qui
revient à mon sens à trop charger la base pour pas grand chose (juste
un effet d'affichage).



L'idéal je l'avoue serait de savoir comment faire autrement bien qu'en
dernier recours je sois prêt à me résoudre à créer 2 colonnes pour 1
numéro
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
24 nov. 2005 à 16:02
bah sinon c'est comme je le disais.


voir quel sont les differents typ de numeros que tu pourra avoir, et les differnts type de format.


ou alors utiliser les expressions regulieres dans tes requetes, mais la aussi je te conseil d'avoir le temps pour faires les test. c'est possible sous SQL server, sous oracle, je l'imagine mais je ne suis pas sur, sosu les autres SGBDR... aucune idee.

cela dit dans ce cas precis, stocker les infos en double, cela ne me choque pas plus que ca si tu pense que tu aura toute sorte de format et toute sorte de numeros de telephone. en fat toute la question est la !
0
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
27 nov. 2005 à 20:19
Je crois qu'il n'y a pas trente six solutions, soit tu fais un programme qui oblige l'utilisateur a formater le numero de telephone selon ton choix code pays, code localité, n° sur x positions, ou alors tu laisse à l'utilisateur le choix du format et tu l'enregistre en format string dans ta base.

Pascal Laurençon
0
Rejoignez-nous