Bonjour,
Voici mon problème :
J'ai une table pour le menu avec les champs suivant : id, niveau, parent, description.
Id : unique auto_increment
niveau : le niveau hierarchique (root = 0)
parent : l'id parent de l'entrée.
Mon but faire un menu en ul li à x niveaux.
J'ai fait une fonction qui marche mais que sur un seul niveau ce qui est pas top:
Hélas à mon avis la logique de cette fonction est fausse pour un menu à x niveaux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $niv_h_tab[$row{'id'}] = $row['num_h']; $parent_tab[$row{'id'}] = $row['parent']; $descr_tab[$row{'id'}] = stripslashes($row['description']); $niv_max = $row['num_h']; } $html = "<ul id=\"menu\">"; $niv = 1; foreach ($niv_h_tab as $key => $value){ if ($value == $niv){ $html .= "<li><a href=\"#\">".$descr_tab[$key]."</a>"; $html .= "<ul>"; foreach ($parent_tab as $key_p => $parent){ if ($parent == $key){ $html .= "<li><a href=\"#\">".$descr_tab[$key_p]."</a></li>"; } } $html .= "</ul>"; $html .= "</li>"; } } $html .= "</ul>"; echo $html; }
Si vous avez des idées, je suis preneur. Merci d'avance.
Partager