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 :

Recuperer les deux premiers caracteres d'un champ [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2006
    Messages : 216
    Par défaut Recuperer les deux premiers caracteres d'un champ
    Bonjour à tous,
    (je précise que c'est le prog est totalement indépendant de celui d'hier là )
    Voilà, j'utilise la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $req=mysql_query("SELECT DISTINCT LEFT(postal,2) FROM apg_points_t WHERE postal <> '' ORDER BY postal")
    Le but est de récupérer les deux premiers caractères de "postal".
    Si je fais un "echo $req", ça a l'air de marcher (il me renvoie un Ressource ID #13 ).
    Le souci est quand je veux traiter ça avec PHP. Si fais une selection de "postal" sans la fonction LEFT, ça marche, mais là avec la requête si dessus j'ai le message d'erreur suivant :

    Notice: Undefined index: postal in c:\program files\easyphp1-8\www\(etc...) on line 109

    Le code PHP utilisé est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    		   while ($resultat=mysql_fetch_array($req)) {
    // Ligne 109      $dpt=$resultat["postal"];
                              echo "......... etc..."
    Merci d'avance si quelqu'un peut m'aider

  2. #2
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Essaie en mettant ça au début de ta requête à la place de ce que tu as là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT LEFT(postal,2) AS postal FROM...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2006
    Messages : 216
    Par défaut
    Citation Envoyé par JWhite
    Essaie en mettant ça au début de ta requête à la place de ce que tu as là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT LEFT(postal,2) AS postal FROM...
    Merci... Ca marche impec' .
    (je comprends l'erreur en plus... :p )

  4. #4
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut
    Par simple curiosité, est-ce que ça marche si au lieu d'utiliser un alias, le code PHP se présentait ainsi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dpt=$resultat["left(postal, 2)"];

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2006
    Messages : 216
    Par défaut
    Citation Envoyé par Original Prankster
    Par simple curiosité, est-ce que ça marche si au lieu d'utiliser un alias, le code PHP se présentait ainsi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dpt=$resultat["left(postal, 2)"];
    Je ne pense pas (je n'ai pas essayé, je n'ai plus accès au code là, désolé ^^), pour la raison suivante :

    Dans la BDD de données il va tout te prendre. Donc si tu as par exemple 33400 et 33800 comme codes postaux, il va te les prendre.
    Avec l'affichage PHP, il mettra DEUX FOIS "33" dans le cas cité ci-dessus, à mon humble avis en tout cas (avant j'avais un "substr" pour ne prendre que les deux premiers caractères d'ailleurs, mais évidemment ça n'évitait pas les doublons).
    Bien sûr, il y aurait d'autres manières de faire, en PHP, mais bien plus lourdes (avec des array par exemple). D'où ma question concernant la requête en elle-même .

    Edit :
    J'ai oublié de préciser que le but n'est d'afficher QUE les départements (33 dans notre exemple).

  6. #6
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Juste une remarque par expérience, il faut faire attention pour les codes postaux < 10000 car il peut arriver que le premier zéro soit zappé lors de conversion en numérique... Pour avoir bossé dans un centre de tri il y a énormément de courrier qui se perd car le programme d'impression des adresses enlève ce zéro et par exemple tout ce qui va dans 07200 atterrit au final dans le 72. C'est la même chose avec les numéros de téléphone au passage

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/05/2007, 11h39
  2. Connaitre les deux premier chiffres d'un input
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/01/2005, 16h50
  3. [Debutant] GROUP BY sur les premiers caracteres d'un champ
    Par seb-astien dans le forum Langage SQL
    Réponses: 8
    Dernier message: 09/11/2004, 14h53
  4. Réponses: 2
    Dernier message: 04/09/2004, 10h53
  5. selection selon premier caractere d un champ
    Par jack-daniel dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/08/2003, 12h25

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