Modérateur PHPfrance |
10684 Messages
03 févr. 2010, 21:05
Tu peux en effet faire une première boucle sur tes catégories, puis, pour chaque catégorie aller chercher les sous-catégories qui lui sont associées. C'est sans doute l'algorythme le plus simple. L'inconvénient, c'est que cela va te faire un nombre de requêtes proportionnel au nombre de catégories dans ta base, ce qui d'un point de vue performance est loin d'être terrible.
Je te recommande donc de ne faire qu'une seule requête et de laisser le traitement de mise en page à php tel que tu as commencé. Ce qui te manque, c'est simplement une variable temporaire ou stocker la catégorie courrante, que tu pourras afficher lorsqu'elle change :
$categorie = '' ; // valeur initiale, vide par défaut
while ($rs2 = mysql_fetch_assoc($query2)) { // si tu utilises uniquement les noms des champs pour accéder aux donnée, _assoc est plus léger que _array
if ($categorie != $rs2['categorie']) { // tu rencontres une nouvelle catégorie
echo $rs2['categorie'] . "<br />"; // affiche la catégorie
$categorie = $rs2['categorie']; // stocke la nouvelle catégorie dans la variable temporaire
}
echo $rs2['sous_categorie'] . "<br />";
}
Voici la base de ta boucle... à partir de là, tu peux avec quelques conditions bien placées ouvrir et fermer tes listes quand il le faut

Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...