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 sur deux tables liées [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é
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut Requête sur deux tables liées
    Bonjour, je bloque là, au secours svp !

    Dans Mysql j'ai :

    t_produit (id_prod, nom, couleur, prix, id_fournisseur)
    t_fournisseur(id_fournisseur, adresse, telephone)

    Une relation est créee avec une clé étrangere entre le champs id_fournisseur des deux tables.

    Voici ma question, simple :

    quelle requete dois-je utiliser pour résoudre la question suivante : donne moi le nom, la couleur, l'adresse du fournisseur et son numéro de téléphone qui correspond à l'id_prod n°3 (par exemple)

    Lors de mes essais, j'arrivais a trouver le nom et la couleur de l'id_prod n°3 mais TOUJOURS les informations du fournisseurs étaient celles du premier enregistrement de t_fournisseur

    P.S pas besoin de préciser que je suis débutant... !

  2. #2
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    le plus simple est de faire ça en une seule requête avec une jointure interne :
    http://sqlpro.developpez.com/cours/sqlaz/jointures/

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut
    Merci pour ta réponse (rapide )

    J'ai deja regardé la doc, j'avais fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    SELECT id_prod, nom, couleur
    FROM   t_produit C 
           JOIN t_fournisseur T
                 ON C.id_fournisseur = T.id_fournisseur
    WHERE  id_prod = '3'

    ça fonctionne pas !

    Ca me sort les infos de t_produit mais rien de t_fournisseur

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut
    je viens d'utiliser left join et ça marche... même pas besoin de clé étrangere

    qui peux m'expliquer ? j'aimerais comprendre

  5. #5
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    Citation Envoyé par vinze60 Voir le message
    Ca me sort les infos de t_produit mais rien de t_fournisseur
    c'est normal, dans "SELECT" tu as seulement mis des nom de colonnes de la table "produit"
    il faut garder "JOIN" (et pas de jointure externe avec LEFT JOIN) et ajouter les colonnes de la table "fournisseur" dans "SELECT"

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id_prod, nom, couleur,t_fournisseur.id_fournisseur, adresse, telephone FROM t_produit,t_fournisseur WHERE t_fournisseur.id_fournisseur=t_produit.id_fournisseur AND id_prod='3'

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut
    Ho ouai génialll !!!

    Merci !!!! Maintenant j'ai une autre petite question

    Grace a vous j'ai réussi a sortir 1 résultats et maintenant je souhaiterais isoler chacune des lignes (chacuns des 11 résultats) dans une variable.

    Par exemple mon mysql_fetch_array me sort :

    ligne1
    ligne3
    ligne4
    ligne5
    ...

    J'aimerais avoir ces valeurs dans les variables comme suit :

    $var1=ligne1
    $var2=ligne2
    $var3=ligne3

    etc,...

    Je serais super heureux si qqn1 pouvais m'aider a finir ça

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

Discussions similaires

  1. [AC-2007] Requête sélection sur deux tables liées
    Par rogerfon dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 10/04/2010, 14h30
  2. Récupération du résultat d'une requête sur une table liée
    Par champijulie dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/06/2007, 12h26
  3. Requête sur deux tables et réponses en colonnes
    Par grandoc dans le forum Requêtes
    Réponses: 2
    Dernier message: 19/12/2006, 12h49
  4. Requête sur deux tables en même temps
    Par will89 dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/04/2006, 11h01
  5. Problème de requêtes sur deux tables
    Par Pymm dans le forum Access
    Réponses: 6
    Dernier message: 06/09/2005, 09h06

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