Page 1 sur 1

Lister les catégories et les sous-catégories d'un forum

Posté : 26 juin 2007, 01:08
par Antoine
Bonsoir à tous,
Je code actuellement un forum. Je veux y incroporer plusieurs catégories et sous-catégories pour chaque catégorie. J'aimerai faire cela en une seule requête mais je bloque.
J'ai une première table forum_cate qui contient la liste des catégories ainsi qu'un autre table forum_sections qui contient la liste des sous catégories. Ces 2 tables sont reliées entre elles par un champ : le champ ID de la table forum_cate correspond au champ ID_CATE de la table forum_sections. Ainsi, chaque section (ou sous-catégorie) est reliée à une catégorie.

J'aimerais afficher tout ce petit monde ce la façon suivante :
CATEGORIE 1
---- CATE_1_A
---- CATE_1_B
---- CATE_1_C
CATEGORIE 2
---- CATE_2_A
---- CATE_2_B
---- CATE_2_C
CATEGORIE 3
---- CATE_3_A
---- CATE_3_B
---- CATE_3_C

(etc)


Pour cela, j'utilise la requete suivante :
$retour_forum_cate=$sql->requete('SELECT * FROM forum_cate fc LEFT JOIN forum_sections fs ON fc.ID=fs.ID_CATE');
Et :
<tr class="forum_cate"><td><?php echo $data['TITRE_C']; ?></td></tr>
<tr><td><?php echo $data['TITRE']; ?></td><tr>


Seulement quand j'affiche ça ça me donne quelquechose du genre :

CATEGORIE 1
---- CATE_1_A
CATEGORIE 1
---- CATE_1_B
CATEGORIE 1
---- CATE_1_C

CATEGORIE 2
---- CATE_2_A
CATEGORIE 2
---- CATE_2_B
CATEGORIE 2
---- CATE_2_C


(etc)

Quelqu'un peut-il m'aider? Merci d'avance.
Bonne nuit :)

Posté : 26 juin 2007, 01:26
par Truc
une soluce dans ce sujet :)

Posté : 26 juin 2007, 01:31
par Perceval_TL
Lui qui ne pensait pas avoir de réponse, c'est qu'il va être content. :P

Posté : 26 juin 2007, 02:30
par AB
En gardant ta requête il te suffit de ne pas afficher les titres de rubrique s'ils ont déjà été listé une fois.

Avec une petite astuce tu devrais pouvoir t'en tirer facilement :

Avant ta boucle d'affichage définit simplement une variable qui te servira de test

ex :
$Titre_rubrique ='';

//et dans ta boucle d'affichage

if ($Titre_rubrique != $data['TITRE_C'])
{ ?>
<tr class="forum_cate"><td><?php echo $data['TITRE_C']; ?></td></tr>
<?php } ?>
<tr><td><?php echo $data['TITRE']; ?></td><tr>
//...
$Titre_rubrique = $data['TITRE_C']);

//fin de ta boucle d'affichage

EDIT Le seul cas où cela ne marcherait pas c'est si tu avais 2 titres de rubrique identiques et successives. Mais habituellement deux titres identiques (de surcroît successifs) n'est pas possible pour les rubriques :wink: