Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 03/01/2011, 09h55   #1
Invité régulier
 
Inscription : août 2010
Messages : 24
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 24
Points : 8
Points : 8
Par défaut Création de fonction pour affichage numéro de téléphones

Bonjour et bonne Année à tous

Pour commencer l'année je veut créer une fonction toute bête qui me permettrais de "découper" les numéros de téléphones nationaux qui sont stockés en varchar(10) dans ma base données.

Il n'en ait rien cette fonction me retourne un chiffre qui n'a rien à voir avec ce que je lui demande.

Quelqu'un peut-il m'éclairer s'il vous plaît ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function miseEnformeTels($num){
 
 
$d1 = substr($num, 0, 2);
$d2 = substr($num, 2, 2);
$d3 = substr($num, 4, 2);
$d4 = substr($num, 6, 2);
$d5 = substr($num, 8, 2);
 
$numspaced = $d1.' '.$d2.' '.$d3.' '.$d4.' '.$d5;
 
echo $numspaced;
 
}
ripout est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 10h23   #2
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
Bonjour,

dans l'entrée de ta fonction, t'as essayé de faire un echo de ta variable $num avant le découpage pour voir ce que tu essaies de découper ?
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 11h22   #3
Invité régulier
 
Inscription : août 2010
Messages : 24
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 24
Points : 8
Points : 8
avant la fonction j'ai bien un numéro du type 0630341759 issu de ma base de données, pas de souci de ce point de vue.

par contre j'ai essayé de faire pour voir...

Code :
1
2
3
4
5
6
7
8
9
function miseEnformeTels($num){
 
    echo $num;
 
}
 
$test = 0630341759;
 
miseEnformeTels($test);
et j'obtient

13383805

je comprend rien là

je pense que la suite de la fonction est ok mais que c'est dès le part comme on le voit qu'il y à un un gag.
ripout est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 11h32   #4
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Sinon tu peux faire SUBSTRING via MySQL directement, ce sera plus optimisé
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 11h36   #5
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Citation:
Envoyé par ripout Voir le message
avant la fonction j'ai bien un numéro du type 0630341759 issu de ma base de données, pas de souci de ce point de vue.

par contre j'ai essayé de faire pour voir...

Code :
1
2
3
4
5
6
7
8
9
function miseEnformeTels($num){
 
    echo $num;
 
}
 
$test = 0630341759;
 
miseEnformeTels($test);
et j'obtient

13383805

je comprend rien là

je pense que la suite de la fonction est ok mais que c'est dès le part comme on le voit qu'il y à un un gag.

Ton $test doit etre:

Car on fait un substring sur un STRING et non in INT

Si ce n'est pas ça, c'est la honte d'avoir été aussi sur de moi
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 11h42   #6
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 702
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 702
Points : 3 271
Points : 3 271
Salut

Attention au 1er 0, faut mettre ce chiffre en tant que string (chaine) :
Code :
1
2
 
$test = '0630341759';
Sinon, on peu aussi exploiter du Javascript pour mettre en forme, comme ici mettre des espaces entre des chiffres.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 14h55   #7
Invité régulier
 
Inscription : août 2010
Messages : 24
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 24
Points : 8
Points : 8
j'avais pensé mettre ma variable comme vous le suggérez entre des simples ou des doubles quotes.

si passe comme argument à ma fonction une chaine string comme ceci

Code :
miseEnformeTels('0630341759')
je n'ai bien sûr aucun souci.
mais si je passe comme argument à ma fonction une variable issue de ma reqête comme ceci

Code :
miseEnformeTels($row_machine['tel_mobile'])
alors là j'ai ce fameux souci



Je ne sait pas comment faire pour forcer le type de ma variable en string. C'est peut être ça la solution non ?
ripout est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 15h03   #8
Membre chevronné
 
Homme Taoufiq Ben
Développeur Web
Inscription : mai 2009
Messages : 456
Détails du profil
Informations personnelles :
Nom : Homme Taoufiq Ben
Âge : 25
Localisation : Maroc

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2009
Messages : 456
Points : 639
Points : 639
Est ce que le champs tel_mobile dans la base est varchar??
m4riachi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 15h07   #9
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
essaie ca :

Code :
1
2
 
miseEnformeTels("$row_machine['tel_mobile']");
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 15h22   #10
Invité régulier
 
Inscription : août 2010
Messages : 24
Détails du profil
Informations forums :
Inscription : août 2010
Messages : 24
Points : 8
Points : 8
je suis confu mon champ n'était pas défini en varchar mais en int.

ripout est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h54.


 
 
 
 
Partenaires

Hébergement Web