patricia.b Posté 4 Septembre 2008 Posté 4 Septembre 2008 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...
xpatval Posté 4 Septembre 2008 Posté 4 Septembre 2008 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
KnockedMaster Posté 4 Septembre 2008 Posté 4 Septembre 2008 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
patricia.b Posté 4 Septembre 2008 Auteur Posté 4 Septembre 2008 Merci de votre réactivité. 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
xpatval Posté 4 Septembre 2008 Posté 4 Septembre 2008 Un fournisseur peut-il distribuer plusieurs produits ? Si oui, il te faut une table de jointure...
patricia.b Posté 4 Septembre 2008 Auteur Posté 4 Septembre 2008 (modifié) 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é 4 Septembre 2008 par patricia.b
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant