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 mysql select 2 champs 2 tables [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 25
    Par défaut requête mysql select 2 champs 2 tables
    Bonsoir,

    je vous sollicite pour une petite question qui aujourd'hui me pose problème

    J'ai 2 tables :

    Villes
    id_villes
    nom

    Membres
    id_membre
    id_ville_naissance
    id_ville_habite

    Je souhaiterai faire une requête pour afficher le nom des 2 villes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $q = ' SELECT *
    		   FROM `membres`
    		   INNER JOIN `villes` ON `villes`.`id_villes` = `membres`.`id_ville_naissance`
    		   ORDER BY `nom` ASC ';
    J'arrive à récupérer la ville de naissance, mais je ne vois pas comment avoir la ville d'habitation.

    Merci pour votre aide


  2. #2
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    salut,

    on évite de mettre * surtout avec des jointures...
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select id_membre,v1.nom,v2.nom
    from Membres
    left join Villes v1 on v1.id_villes=id_ville_naissance
    left join Villes v2 on v2.id_villes=id_ville_habite;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 25
    Par défaut
    Bonjour,

    merci pour ton aide

    Voici ce que j'ai fait :

    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
    <?php
     
    $q = 'SELECT id_membre,v1.nom,v2.nom
          FROM Membres
          LEFT JOIN Villes v1 ON v1.id_villes=id_ville_naissance
          LEFT JOIN Villes v2 ON v2.id_villes=id_ville_habite;';
     
    $r = mysql_query('SET NAMES utf8');
    $r = mysql_query($q);
     
     
    while($data = mysql_fetch_assoc($r)){
     
    ?>
     
    		<tr>
                <td class="center"><?php echo $data['nom']; ?></td>
               	<td class="center"><?php echo $data['nom']; ?></td>
    		</tr>
     
    <?php
     
    }
     
    ?>
    mais ça ne me renvoit pas les bons résultats

    j'imagine que je dois changer la syntaxe de mes "echo", et appeler v1 et v2, mais je ne trouve pas... j'ai toujours un message d'erreur.

    @+


  4. #4
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    oui regarde les noms des indices dans le tableau

    fais un var_dump dessus pour voir

    ou dans la requête tu fais simplement:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id_membre,v1.nom as `nom1`,v2.nom as `nom2`
    FROM Membres
    LEFT JOIN Villes v1 ON v1.id_villes=id_ville_naissance
    LEFT JOIN Villes v2 ON v2.id_villes=id_ville_habite;

    et donc:
    Code php : 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
    <?php
     
    $q = 'SELECT id_membre,v1.nom,v2.nom
          FROM Membres
          LEFT JOIN Villes v1 ON v1.id_villes=id_ville_naissance
          LEFT JOIN Villes v2 ON v2.id_villes=id_ville_habite;';
     
    $r = mysql_query('SET NAMES utf8');
    $r = mysql_query($q);
     
     
    while($data = mysql_fetch_assoc($r)){
     
    ?>
     
    		<tr>
                <td class="center"><?php echo $data['nom1']; ?></td>
               	<td class="center"><?php echo $data['nom2']; ?></td>
    		</tr>
     
    <?php
     
    }
     
    ?>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 25
    Par défaut
    Effectivement

    merci beaucoup

  6. #6
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    oublie pas de mettre résolu

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

Discussions similaires

  1. Requête avec select max sur 3 tables
    Par Tintinduweb dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/03/2010, 05h49
  2. Timestamp dans une requête MySQL SELECT
    Par Nowwis dans le forum Langage
    Réponses: 4
    Dernier message: 16/08/2009, 11h33
  3. [Requête SQL] - Select count avec plusieurs tables
    Par Pithonnette dans le forum SQL
    Réponses: 7
    Dernier message: 25/06/2009, 19h19
  4. Requête MySQL SELECT WHERE
    Par kekegtr dans le forum Langage
    Réponses: 3
    Dernier message: 08/11/2008, 19h23
  5. [MySQL] Requête MySQL : Select * from ..
    Par JmL40 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 21/05/2007, 16h06

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