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

Requêtes MySQL Discussion :

Construire une liste de sélection avec 2 tables


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Points : 8
    Points
    8
    Par défaut Construire une liste de sélection avec 2 tables
    Bonjour,

    Je demande votre aide car je cale sur un problème de liste de sélection à partir de 2 tables : departements et regions. Le but étant de présenter les valeurs de façon imbriquées sous la forme :

    Alsace
    67 Bas-Rhin
    68 Haut-Rhin
    Aquitaine
    24 Dordogne
    33 Gironde
    etc.

    Voici mon code :

    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
     
    // Requête SQL
    $rqSql = "SELECT num_dept, libelle_dept, nom_reg, regions.id_reg 
                 FROM departements, regions 
                 WHERE departements.id_reg = regions.id_reg 
                 ORDER BY 4, 1";
    // Exécution de la requête
    $result = mysql_query( $rqSql, $idConnect)
                 or die( "Exécution requête impossible !");
    mysql_close( $idConnect);
    // Construction de la chaîne de caractères qui fait la liste
    $ldep = "<SELECT NAME='listDept'>";
    $ldep .= "<OPTION VALUE=0>Choisissez</OPTION>";
    // On boucle sur les tables
    while ( $row = mysql_fetch_array( $result)) {
        $nomreg = $row["nom_reg"];
        $numdep = $row["num_dept"];
        $nomdep = $row["libelle_dept"];
        $ldep .= "<OPTION VALUE='$nomreg'>$nomreg</OPTION>";
        $ldep .= "<OPTION VALUE='$numdep'>$nomdep</OPTION>";
    }
    $ldep .= "</SELECT>";
     
    print $ldep;
     
    ?>
    Mais le résultat donne :

    Alsace
    67 Bas-Rhin
    Alsace
    68 Haut-Rhin
    Aquitaine
    24 Dordogne
    Aquitaine
    33 Gironde
    etc.

    Voir exemple sur http://www.gigaprint.fr/testphp/inc-test.php

    Et après de nombreuses recherches sur le web, je n'arrive pas à trouver la solution.

    Merci pour vos contributions.

  2. #2
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Bonjour,

    Ce n'est pas le rôle du SGBD de faire ce genre de mise en forme. C'est dans ton script PHP qu'il faut réorganiser les données pour les afficher...

    http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L9

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 10/05/2010, 21h59
  2. [MySQL] Définir le contenu d'une liste de sélection avec un BDD
    Par idamarco dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/02/2009, 16h37
  3. Réponses: 2
    Dernier message: 04/01/2008, 09h24
  4. Réponses: 7
    Dernier message: 17/10/2006, 12h32
  5. [MySQL] Organiser les valeurs de 2 tables dans une liste de sélection
    Par domdas dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/08/2006, 08h51

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