Aller au contenu

Requête sur 2 tables


patricia.b

Sujets conseillés

Bonjour,

Je suis plus que débutante en ce qui concerne le SQL, et, en général, j'essaie de me débrouiller seule ou en parcourant des forums pour trouver la solution à mes problèmes, mais là, je n'ai pas trouvé comment faire une requête qui, pourtant, doit être très courante... (si la réponse existe sur ce forum, d'avance toutes mes excuses, c'est que j'aurai mal cherché...)

D'une part, j'ai deux tables :

1) fournisseurs avec : id (autoincrémenté), nom, adresse, etc.

2 ) produits avec : id (autoincrémenté), nom, chemin_image, description, prix, stock, id_fournisseur

D'autre part, j'ai une page php sur laquelle tous les produits contenus dans la table "produits" sont listés : nom, image - tous fournisseurs confondus - avec, pour chaque produit, un bouton "détail". Cliquer sur l'un des boutons "détail" amène à la page... "detail.php" qui affiche le nom, l'image, la description et le prix du produit sélectionné dans la page précédente. Là, je n'ai pas de problème pour faire la requête permettant de les récupérer puis de les afficher.

$query = mysql_query("SELECT * FROM produits WHERE id='$id'");
$row = mysql_fetch_row($query);

Cependant, je voudrais ajouter à chaque produit le nom du fournisseur correspondant, mais il me faut aller chercher son nom sur la table "fournisseurs", si je ne veux pas me retrouver avec son n° id, et je ne sais pas comment écrire ma requête.

Merci d'avance pour votre aide...

Lien vers le commentaire
Partager sur d’autres sites

Cela dépend de plusieurs choses...

Un produit peut-il être distribué par plusieurs fournisseurs ?

L'id de la table fournisseurs se nomme id ou id_fournisseur ?

xpatval

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Cela dépend effectivement de plusieurs choses, mais tu peux toujours essayer un truc du genre si un produit ne provient que d'un fournisseur :

$query = mysql_query("SELECT fournisseurs.nom, produits.id, produits.nom, produits.chemin_image, produits.prix, produits.stock FROM fournisseurs, produits WHERE produits.id_fournisseur= fournisseurs.id AND produits.id='$id'");
$row = mysql_fetch_row($query);

Un peu à l'arrache mais ça devrait fonctionner :P

Lien vers le commentaire
Partager sur d’autres sites

Merci de votre réactivité. :thumbsup:

Pour répondre aux questions :

- un même produit peut être distribué par plusieurs fournisseurs

- pour l'id de la table fournisseur, je viens de le changer (pour ne pas me mélanger avec les différents id). Je l'ai donc appelé frsid. Ce qui fait que mes tables, maintenant, sont ainsi :

1) fournisseurs avec : frsid (autoincrémenté), nom, adresse, etc.

2 ) produits avec : id (autoincrémenté), nom, chemin_image, description, prix, stock, frsid

Lien vers le commentaire
Partager sur d’autres sites

Oui, un fournisseur distribue plusieurs produits...

Une table de jointure, j'ai jamais fait (je suis vraiment très, mais très débutante ;) ) mais je vais apprendre...

En attendant, je vais utiliser la requête que m'a soumis KnockedMaster, et qui fonctionne très bien. Grand merci... et lorsque j'aurais un même produit distribué par plusieurs fournisseurs, je le rentrerai comme un produit unique associé au fournisseur (je ne sais pas si je suis très explicite, là...). Cela gonflera un peu ma BDD, mais je ne pense pas avoir beaucoup de produits identiques distribués par plusieurs fournisseurs, tout au moins dans l'immédiat.

Encore une fois merci pour vos réponses.

Modifié par patricia.b
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...