- Ymox,
Ben il faut faire en sorte que le programme se souvienne de ce qu'il avait manipulé juste avant… Avec une variable, par exemple
Là, j'avoue que ça dépend de ce que tu souhaites. Mais tu as dit vouloir une ligne avec le produit et toutes ses catégories, du coup, oui.
Tu n'en as effectivement pas besoin, il suffit de bien réfléchir à qu'est-ce qu'il se passe dans la boucle principale.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?php $reponse = $bdd->query(/* La requête */); /* On initialise la variable comme étant une chaîne vide en dehors de la boucle… */ $precedent = ''; while ($donnees = $reponse->fetch()) { /* … parce qu'on en a besoin ici pour tester si on a changé de produit. Et * à la première itération, c'est presque le cas. Le fait d'avoir défini * comme une chaîne vide avant permet de faire en sorte que l'ID du * premier produit est considéré comme différent de celui d'avant qui, * pourtant n'existe pas */ if ($precedent != $donnees['MPL_product_id']) { if ($precedent !== '') { echo '</td></tr>'; } echo '<tr><th>' . htmlspecialchars($donnees['MPL_product_name']) . '</th></tr>'; } /* On affiche de toute manière la catégorie */ echo htmlspecialchars($donnees['MPL_Category_name']); /* Si on avait mis cette ligne en début de boucle, on aurait une condition * qui serait toujours respectée, donc on n'afficherait jamais le nom de * l'article. Et là, donc, on aura le nom du produit de la boucle * précédente dans la boucle suivante (tu suis ?) */ $precedent = $donnees['MPL_Category_id']; } $reponse->closeCursor(); |
Une gestion d'éléments catégorisés (ici dans un tableau)
+1
-0