Afficher par catégorie

Répondre
amadousoind
le 12/01/2007 à 18:48
amadousoind
Je suis un débutant et je voudrais qu'on m'aide à afficher le résultat de ma requête.

J'ai deux tables categorie( id, nomcategorie) et
produits(num, idcategorie, nomproduit)

Ma requette est : SELECT * from categorie,produits where categorie.id = produits.idcategorie

Pour afficher je fais
//j'affiche les catégories par ligne
<? $sqlfr2 = mysql_query("SELECT * FROM categorie ");
while($result=mysql_fetch_array ($sqlfr2)) {
$nomcategorie=$result['nomcategorie'];
?> <tr> <td> <? echo "$nomcategorie";?></td></tr>

//j'affiche les produits par catégorie
$sqlprod = mysql_query("SELECT * FROM categorie,produits where categorie.id = produits.idcategorie");
while($resulprod=mysql_fetch_array ($sqlprod)) {
$nomproduit=$resulprod['nomproduit']; ?>
<tr> <td> <? echo "$nomproduit";?></td></tr>
//je ferme la boucle des produits
<? }?>

//je ferme la boucle des catégories
<? }?>

Pourtant lorsque ça affiche je vois tous les produits sous chaque catégorie. erci de m'aider à créer la variable temporaire qui va vérifier si le produit correspond à la catégorie.
bibi
le 12/01/2007 à 20:38
bibi
bonjour et bienvenue dans le monde du php :)

déja, utlise les balises prévues pour que ce soit légèrement plus clair.

1ere remarque : evite les SELECT * . En effet, ne sélectionne que les champs dont tu as besoin. Meme si tu as besoin de tous les champs, cite les tous car on ne sait jamais , tes tables pourraient changer et tu prendrais alors des champs inutiles.

Ensuite, ta condition "where" dans la 2eme requete est fausse. En effet, connaissant l'id de la catégorie, tu n'as donc plus besoin de faire de jointure avec la table categorie.

ta requete doit donc ressembler a ca :

$sqlprod = mysql_query('SELECT num,nomproduit FROM produits WHERE idcategorie = "'.$result['id'].'"';


vala :)
commit suicide
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours