|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2006 Messages : 23 ![]() |
Bonjour,
j'ai besoin d'avis... Je veux enregistrer des numéro de téléphone dans une base de données access pour un site en php, donc au travers d'un driver ODBC. J'aimerai savoir s'il vaut mieux formater le numéro au moment de l'enregistrement, ou s'il est préférable de limiter le champ au caractere numérique et de formater l'affichage ? Sachant que si j'enregistre que les caractères numérique, à chaque fois que je vais vouloir afficher un numéro, il faudra que je fasse appel à la fonction de formatage. Alors que dans l'autre cas la fonction sera appelée juste au moment de l'enregistrement. Ensuite quel type de champ utilisez vous pour du numéro de tel ? texte ou entier ? Merci pour vos réponses. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 2 161 ![]() |
comment veux-tu afficher le numéro ? en ajoutant des espaces ?
moi j'aurai mis un type entier dans ma base aussi, au moins tu es sûr qu'il n'y aura que des chiffres dans ce champ. |
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() ![]() |
Un type entier, je ne suis pas sûr
0123456789 transformé en entier ça donne 123456789, donc perte d'informations... J'utiliserais un type texte... |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : mai 2006 Messages : 23 ![]() |
en fait pour l'instant j'enregistre mon numero de cette façon 0123456789 dans un champ texte, et quand je l'affiche il apparait de cette manière : 0123456789.
Or les utilisateurs trouve ca illisible. Donc je me demandais est-ce qu'il vaut mieux que j'enregistre 0123456789 et que je fasse une fonction qui formate de cette façon 01 23 45 67 89 à chaque fois que je veux afficher un numéro. Ou est-ce que le formate au moment de l'enregistrer comme ça au moment de l'afficher je n'ai pas besoin de le mettre en forme. ??? |
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() |
Enregistre comme ça 0123456789
Et fait ta fonction qui affichera selon ton bon vouloir le résultat à l'utilisateur 01 23 45 67 89 ou 01.23.45.67.89 etc etc A partir de là tu pourrais même jouer sur les codes internationaux et ajouter +33 devant par exemple
__________________
Le . est la base de toute bonne concaténation, marre de voir des echo "Mavar1 = $toto et Mavar2 = $titi"; ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi; pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi; |
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() ![]() |
oui, surtout que si un jour tu décides d'afficher le numéro autrement, il faudra mettre à jour toute la base de données... donc formattage du numéro à chaque affichage et non à l'insertion.
|
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Étudiant Inscription : juillet 2006 Messages : 130 ![]() |
Oui,car de plus, en specifiantle nombre exact de chiffre (dans ce cas 10), tu gagnes de la place dans ta DB.
Quoiqu'avec leurs puissance actuelles on est pas a 20 octets près ... |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 6 ![]() |
Dans ta base de donnée tu l'enregistre au format : 0123456789
Et quand tu l'affiche tu utilise la fonction chunk_split($chaine,$pas,$separateur) $chaine ==>> Ton numero de telephone a formater $pas ==>> Nombre de caractère que le programme va sauter pour inserer le separateur. $separateur ==>> Motif que tu veux inserer a chaque pas. Donc si tu veux mettre un espace tous les 2 chiffre par exemple ca donnera : chunk_split("0123456789",2,' '); Si tu veux qu'il soit séparé par un point : chunk_split("0123456789",2,'.'); Bien qu'avec le point il va t'en mettre un a la fin du numéro Voilou éspérant t'avoir aidé... |
|
|
00
|
|
|
#9 | |
|
Membre habitué
![]() Étudiant Inscription : juillet 2006 Messages : 130 ![]() |
Pas mal la fonction chunk_split ...
Au fait, petite question dont je n'ai pas trouvé la réponse : Quand on définit un entier "INTEGER" comme champdans une base de donnée, et que l'on saisit des trucs du style Citation:
D'après mes quelques test, le résultat semble quelque peu aléatoire, non ?? |
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 6 ![]() |
En principe il garde seulement les chiffre entier non ?
|
|
|
00
|
|
|
#11 |
|
Membre éclairé
![]() ![]() |
en principe, il s'agit d'une erreur de typage donc l'insertion ne se fait pas.
|
|
|
00
|
|
|
#12 |
|
Membre habitué
![]() Étudiant Inscription : juillet 2006 Messages : 130 ![]() |
Ben ce que je voulais dire pas un état aléatroire est que quelques fois il met les chiffres seulement, et d'autres rien du tout.
Il ne genere même pas de warnings ou d'erreurs ?? |
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 6 ![]() |
Non il ne génère pas d'erreur pour ça, il considère que tu sais ce que tu doit mettre dans tes champs (Je suppose :p)
|
|
|
00
|
|
|
#14 |
|
Membre habitué
![]() Étudiant Inscription : juillet 2006 Messages : 130 ![]() |
a oui pas top pratique, mais c'est vrai que l'on peu restreindre l'enregistrement directement dans le champ input
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com