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 :

Requête SELECT sur N° de téléphone


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut Requête SELECT sur N° de téléphone
    Bonjour à tous,

    Depuis mes formulaires, les N° de téléphone arrivent sous la forme +33623232323 et je souhaite rechercher s'ils existent déjà dans la table.
    Le problème c'est que dans la table, il y a d'anciens N° stockés de différentes façons, par exemple 06 23 23 23 23 ou 06.23.23.23.23
    Pour ceux qui sont stockés comme ils arrivent du formulaire, avec ou sans +33 cette requête fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $last_9_chiffres = substr($telephone, -9);
    "SELECT id_partenaire FROM `contacts` WHERE RIGHT(telephone, 9) = '$last_9_chiffres'";
    Mais lorsqu'ils sont stockés sous la forme 06 23 23 23 23 ou 06.23.23.23.23, évidemment ça plante.
    Comment "nettoyer" dans la requête avec un truc du genre str_replace( array(' ', '.'), array('','') ) ? Est ce que c'est possible ?
    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Le problème c'est que dans la table, il y a d'anciens N° stockés de différentes façons, par exemple 06 23 23 23 23 ou 06.23.23.23.23
    Il faut harmoniser tout cela => UPDATE

    Comment "nettoyer" dans la requête
    Tu peux supprimer les "." et les espaces avec

    ...
    WHERE RIGHT(REGEXP_REPLACE(telephone, '[. ]', ''), 9) = :last_digits
    Mais la bonne solution est de décider du format (sans séparateur, avec ou sans indicatif ?), de nettoyer la colonne et de chercher le numéro sans bidouilles

  3. #3
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut
    Bonjour et merci. Je vais tester cette requête. En effet, l'idéal serait de nettoyer les entrées et les N° déjà enregistrés...

  4. #4
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Il faut harmoniser tout cela => UPDATE



    Tu peux supprimer les "." et les espaces avec

    ...
    WHERE RIGHT(REGEXP_REPLACE(telephone, '[. ]', ''), 9) = :last_digits
    Il semble que REGEXP_REPLACE me soit "denied" dans ma BDD. La requête retourne une erreur.

  5. #5
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 315
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 315
    Billets dans le blog
    17
    Par défaut
    Sans la requête exécutée et l'erreur obtenue impossible de t'aider.

Discussions similaires

  1. problème pour requête SELECT sur plusieurs tables
    Par 3dagard dans le forum Requêtes
    Réponses: 15
    Dernier message: 18/08/2008, 00h34
  2. Optimisation d'une requête SELECT sur une grosse table
    Par eracius dans le forum Requêtes
    Réponses: 4
    Dernier message: 26/05/2008, 14h51
  3. Réponses: 9
    Dernier message: 18/02/2008, 11h00
  4. Problème Requête SELECT sur champ texte
    Par arnaud_verlaine dans le forum WinDev
    Réponses: 5
    Dernier message: 02/10/2007, 21h19
  5. Requête select sur *
    Par guidav dans le forum Requêtes
    Réponses: 2
    Dernier message: 23/08/2007, 12h13

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