IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Formater numéro de téléphone


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2013
    Messages : 43
    Points : 26
    Points
    26
    Par défaut Formater numéro de téléphone
    Bonjour à tous,

    Bon je vous explique.

    J'ai un formulaire où les internautes peuvent saisir leur numéro de téléphone.
    D'un autre côté, j'ai une base de données MySql où le numéro de téléphone doit impérativement être au format 33XXXXXXXXX.

    J'ai dû modifier les numéros déjà en base pour les rendre au bon format et affecter le type BIGINT à mes champs numéros de téléphone.

    Mon problème (et là je vois que vous me voyez venir...) est que le numéro de téléphone récupéré s'enregistre avec 9 chiffres.
    Le premier zéro n'est pas pris en compte (ça, ça m'arrange), mais il faut que je rajoute devant le 33 (ça, ça m'arrange pas...).

    Je sais qu'on peut faire une fonction pour enregistrer le numéro au bon format en base, MAIS je n'y arrive pas...

    Je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    ...
    ...
    $telephone = $_POST["telephone"];
    et j'inclus dans ma base de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql = "INSERT  INTO medical (nom, adresse, code_postal, ville, telephone, mobile, mail, web, metier, region, horaires, tarifs, siret, membre_id)
                VALUES ( '$nom', '$adresse', '$code_postal', '$ville', '$telephone', '$mobile', '$mail', '$web', '$metier', '$region', '$horaires', '$tarifs', '$siret', '$membre_id')" ;
                mysql_query("SET NAMES 'utf8'");
    $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
    Je pense que la fonction doit se placer avant la requête sql, mais j'en peu plus de réfléchir... je suis larguée...

    Quelqu'un peut il m'aiguiller ?

    Merci beaucoup !!
    Karine

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    En supposant que le numéro de tél soit reçu sous la forme 0123456789, on retire le 1er caractère et on ajoute 33 devant :
    $telephone = "33"+substr($_POST["telephone"], 1);
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2013
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    Ca n'a pas l'air de fonctionner avec des INT...
    Le problème est que l'admin ne souhaite pas que je mette les champs téléphone en VARCHAR...

    Comment faire autrement ?

    J'étais bien sur cette piste en fait...

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2013
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    SUPER ça fonctionne très bien !!!
    Merci beaucoup !!!!!!!
    Karine

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2013
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    Question bête !!!

    lorsque je restitue le formulaire à l'internaute si il veut modifier qq chose, et bien j'ai le numéro 33XXXXXXXXX qui s'affiche.

    Ce qui est bien normal car c'est comme ça que je veux l'enregistrer dans ma base.

    Y a t'il moyen de restituer un numéro de tél au format "normal" ?

  6. #6
    Membre éclairé Avatar de MythOnirie
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juin 2012
    Messages : 376
    Points : 795
    Points
    795
    Par défaut
    Citation Envoyé par KREEN1978 Voir le message
    Question bête !!!

    lorsque je restitue le formulaire à l'internaute si il veut modifier qq chose, et bien j'ai le numéro 33XXXXXXXXX qui s'affiche.

    Ce qui est bien normal car c'est comme ça que je veux l'enregistrer dans ma base.

    Y a t'il moyen de restituer un numéro de tél au format "normal" ?

    On fait le traitement inverse avant l'affichage, on retire les deux premiers caractères et on rajoute une zéro devant...

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2013
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    oui mais alors j'affiche le champ comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
    //requête SQL:
    $sql = "SELECT * FROM medical WHERE ID = ".$id;
    mysql_query("SET NAMES 'utf8'");
     
      //exécution de la requête:
      $requete = mysql_query( $sql, $cnx ) ;
     
      //affichage des données:
      if( $result = mysql_fetch_object( $requete ) )
      {
      ?>
    <div id="">
        <h2>Modifier vos coordonnées</h2>
     
    <form id="modifForm" class="inscription" name="insertion" action="modification_annuaire2.php" method="POST">
      <fieldset id="backgroundblanc">
      <legend>vos coordonnées à modifier</legend>
        <div id="">
      <input type="hidden" name="id" value="<?php echo($id) ;?>">
      <label class="labelinscription" for="nom">Nom : </label><input class="input-recherche" type="text" name="nom" value="<?php echo($result->nom) ;?>"></br>
      <label class="labelinscription" for="adresse">Adresse : </label><input class="input-recherche" type="text" name="adresse" value="<?php echo($result->adresse) ;?>"></br>
      <label class="labelinscription" for="cp">Code Postal : </label><input class="input-recherche" type="text" name="code_postal" value="<?php echo($result->code_postal) ;?>"></br>
      <label class="labelinscription" for="ville">Ville : </label><input class="input-recherche" type="text" name="ville" value="<?php echo($result->ville) ;?>"></br>
      <label class="labelinscription" for="telephone">Téléphone : </label><input class="input-recherche" type="text" name="telephone" value="<?php echo($result->telephone) ;?>"></br>
      <label class="labelinscription" for="fax">Fax : </label><input class="input-recherche" type="text" name="fax" value="<?php echo($result->fax) ;?>"></br>
      <label class="labelinscription" for="mobile">Mobile : </label><input class="input-recherche" type="text" name="mobile" value="<?php echo($result->mobile) ;?>"></br>
      <label class="labelinscription" for="web">Web : </label><input class="input-recherche" type="text" name="web" value="<?php echo($result->web) ;?>"></br>
      <label class="labelinscription" for="mail">Mail :  </label><input class="input-recherche" type="text" name="mail" value="<?php echo($result->mail) ;?>"></br>
    </div>
    	<div align="center"></br></br>
      <input class="bouton-inscription" type="submit" value="modifier">
      <input class="bouton-inscription" type="reset" value="Annuler"/>
      </div>
    <div align="center"></br></br>
      <a href="../index.php"><input class="bouton-inscription" type="button" value="Retour Accueil"/></a>
      <a href="javascript:history.go(-1)"><input class="bouton-inscription" type="button" value="Page précédente"/></a>
    </div>
    </fieldset>
    </form>
    comment je dois faire ?

    Avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $telephone = "0".substr($_POST["telephone"], 2);
    Mais que je mets où ?

    Merci encore pour votre aide
    Karine

  8. #8
    Membre éclairé Avatar de MythOnirie
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juin 2012
    Messages : 376
    Points : 795
    Points
    795
    Par défaut
    Voila ce que ça devrait être...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo( "0".substr($result->telephone, 2) ) ;?>

  9. #9
    Invité
    Invité(e)
    Par défaut
    bonjour,
    questions "bêtes"...

    1/ et si j'entre DÉJÀ le numéro sous la forme 33xxxxxxxxxx ?

    2/ et si j'habite en Belgique ? (soit 32xxxxxxxxxxxx ?) ou dans un autre pays ?

    3/ et si, bien que français, j'habite en Nouvelle Calédonie (indicatif 687 + numéro à... 6 chiffres !) (ce qui est mon cas !) ?

  10. #10
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2013
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    super !!
    Merci ça fonctionne super bien !!
    Je place la discussion en résolu

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2013
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    bonjour,
    questions "bêtes"...

    1/ et si j'entre DÉJÀ le numéro sous la forme 33xxxxxxxxxx ?

    2/ et si j'habite en Belgique ? (soit 32xxxxxxxxxxxx ?) ou dans un autre pays ?

    3/ et si, bien que français, j'habite en Nouvelle Calédonie (indicatif 687 + numéro à... 6 chiffres !) (ce qui est mon cas !) ?
    Eh beh, vas y en avoir des manips à faire
    Le site que je fais ne concerne que la France Métropolitaine... Oouf !! sauvée !!!

  12. #12
    Membre éclairé Avatar de MythOnirie
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juin 2012
    Messages : 376
    Points : 795
    Points
    795
    Par défaut
    Citation Envoyé par KREEN1978 Voir le message
    Eh beh, vas y en avoir des manips à faire
    Le site que je fais ne concerne que la France Métropolitaine... Oouf !! sauvée !!!
    La première remarque de KREEN1978 est toujours d'actualité. Un utilisateur peut très bien décider d'entrer un numéro du type "+33123456789" voir même "01 23 45 67 89" ou encore "01-23-45-67-89".
    Il est impératif de vérifier ce que l'utilisateur renseigne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Format numéro de téléphone
    Par prologic dans le forum VB.NET
    Réponses: 10
    Dernier message: 06/11/2013, 11h11
  2. Réponses: 21
    Dernier message: 31/07/2009, 16h08
  3. Formater numéro de téléphone
    Par neiler dans le forum Langage
    Réponses: 2
    Dernier message: 11/07/2008, 21h13
  4. Réponses: 7
    Dernier message: 17/04/2007, 22h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo