Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & ODBC
PHP & ODBC Forum d'entraide sur ODBC avec PHP. Avant de poster -> FAQ ODBC
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/07/2006, 14h32   #1
Invité de passage
 
Inscription : mai 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 23
Points : 4
Points : 4
Par défaut Formatage d'un numéro de téléphone

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.
loganblack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2006, 11h03   #2
Membre Expert
 
Avatar de Oluha
 
Inscription : novembre 2004
Messages : 2 161
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : novembre 2004
Messages : 2 161
Points : 2 051
Points : 2 051
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.
Oluha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2006, 14h08   #3
Membre éclairé
 
Avatar de giminik
 
Inscription : mars 2002
Messages : 303
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : mars 2002
Messages : 303
Points : 356
Points : 356
Envoyer un message via MSN à giminik
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...
giminik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 09h56   #4
Invité de passage
 
Inscription : mai 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 23
Points : 4
Points : 4
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.

???
loganblack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 11h21   #5
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
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;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 14h39   #6
Membre éclairé
 
Avatar de giminik
 
Inscription : mars 2002
Messages : 303
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : mars 2002
Messages : 303
Points : 356
Points : 356
Envoyer un message via MSN à giminik
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.
giminik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 19h22   #7
Membre habitué
 
Avatar de Regnak
 
Étudiant
Inscription : juillet 2006
Messages : 130
Détails du profil
Informations personnelles :
Âge : 23

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2006
Messages : 130
Points : 144
Points : 144
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 ...
Regnak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 20h55   #8
Invité de passage
 
Inscription : juillet 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 6
Points : 4
Points : 4
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 (En gros tu obtiendra ceci : 01.23.45.67.89. )

Voilou éspérant t'avoir aidé...
Glocman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 22h13   #9
Membre habitué
 
Avatar de Regnak
 
Étudiant
Inscription : juillet 2006
Messages : 130
Détails du profil
Informations personnelles :
Âge : 23

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2006
Messages : 130
Points : 144
Points : 144
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:
a154sdf
Qu'est ce qui va se produire ??
D'après mes quelques test, le résultat semble quelque peu aléatoire, non ??
Regnak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 22h56   #10
Invité de passage
 
Inscription : juillet 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 6
Points : 4
Points : 4
En principe il garde seulement les chiffre entier non ?
Glocman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 23h46   #11
Membre éclairé
 
Avatar de giminik
 
Inscription : mars 2002
Messages : 303
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : mars 2002
Messages : 303
Points : 356
Points : 356
Envoyer un message via MSN à giminik
en principe, il s'agit d'une erreur de typage donc l'insertion ne se fait pas.
giminik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2006, 07h58   #12
Membre habitué
 
Avatar de Regnak
 
Étudiant
Inscription : juillet 2006
Messages : 130
Détails du profil
Informations personnelles :
Âge : 23

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2006
Messages : 130
Points : 144
Points : 144
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 ??
Regnak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2006, 08h58   #13
Invité de passage
 
Inscription : juillet 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 6
Points : 4
Points : 4
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)
Glocman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2006, 14h12   #14
Membre habitué
 
Avatar de Regnak
 
Étudiant
Inscription : juillet 2006
Messages : 130
Détails du profil
Informations personnelles :
Âge : 23

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2006
Messages : 130
Points : 144
Points : 144
a oui pas top pratique, mais c'est vrai que l'on peu restreindre l'enregistrement directement dans le champ input
Regnak est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h01.


 
 
 
 
Partenaires

Hébergement Web