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 :

Récupération d'une valeur sur une autre table grâce à une jointure [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 447
    Par défaut Récupération d'une valeur sur une autre table grâce à une jointure
    Bonsoir, comment en php on fait pour récupéré les valeurs d'un champs d'une autre table fait avec une jointure.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            $sql = '
                SELECT * FROM videogame 
                JOIN platform ON videogame.Id_platform = platform.Id_platform
                ORDER BY editor 
            ';
     
     
    $pdoStatement = $pdo->query($sql);
    $results = $pdoStatement->fetchAll(PDO::FETCH_ASSOC);
    et ensuite je veux récupéré de la table platform la valeur qui est dans le champ nom

    J'utilise un foreach. J'ai fait comme ça mais sa ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // Ceci sont les champs de la table videogame.
    <td><?=$value['Id_videogame']?></td>
    <td><?=$value['name']?></td>
    <td><?=$value['editor']?></td>
    <td><?=$value['release_date']?></td>
    // Ce champs là c'est celui de l'autre table ou je veux récupérer le nom des platform.
    <td><?=$value["Id_platform.name"]?></td>
    Mais cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><?=$value["Id_platform.name"]?></td>
    ne marche pas.
    Merci par avance.

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Tout d'abord un conseil: évite le SELECT * et précise explicitement (une à une) les colonnes (<= on utilise plutôt ce terme pour les bdd plutôt que "champs") qui t'intéressent.

    Ensuite si tu n'obtiens pas de colonne Id_platform.name (ou plutôt platform.name) c'est parce que tu ne l'as tout simplement pas demandée; le * se rapporte uniquement aux colonnes de la table désignée par le FROM.

    On demande donc chaque colonne nécessaire et pour alléger la requête et éviter les ambiguïtés, on utilise des alias pour les noms de table:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT v.Id_videogame, v.name, v.editor, v.release_date, p.name
    FROM videogame v 
    JOIN platform p
        ON v.Id_platform = p.Id_platform
    ORDER BY v.editor

    Aussi, la modélisation de ta base n'est pas bonne, tu devrais la confronter et demander conseil sur le sous-forum schéma ou modélisation.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 447
    Par défaut
    Ok merci pour t'on aide.

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

Discussions similaires

  1. Récupérer une valeur sur un autre WB, sans activate.
    Par NicolasC91 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 16/05/2011, 11h06
  2. Rafraîchir une valeur sur un autre fichier
    Par Nicovideo dans le forum Langage
    Réponses: 37
    Dernier message: 16/09/2009, 19h06
  3. Rechercher une valeur dans un autre table
    Par zangel dans le forum Access
    Réponses: 4
    Dernier message: 10/09/2008, 01h48
  4. Recherche d'une valeur sur un autre onglet
    Par elfye dans le forum Excel
    Réponses: 10
    Dernier message: 03/03/2008, 13h45
  5. SELECT sur l'une ou sur l'autre table
    Par griese dans le forum Langage SQL
    Réponses: 5
    Dernier message: 07/07/2006, 14h36

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