Maison >base de données >tutoriel mysql >Comment créer des menus hiérarchiques avec une profondeur illimitée en PHP et MySQL ?
Création de menus hiérarchiques avec une profondeur illimitée
Dans ce guide, nous explorerons comment créer des menus imbriqués avec un nombre illimité de niveaux en utilisant PHP et MySQL.
Structure de la base de données
Nous utiliserons une structure de base de données dans laquelle chaque élément de menu a un "id", un "parent_id" et un "title". Le champ "parent_id" stocke l'ID du parent de l'élément de menu, avec "0" indiquant un menu de niveau supérieur.
Récupération des sous-menus
Pour récupérer les sous-menus d'un menu parent, nous pouvons utiliser le code suivant :
<code class="php"><?php $list = $obj->childmenu($parentid); foreach($list as $menu) { extract($menu); echo '<li><a href="#">'.$name.'</a></li>'; } ?></code>
Vérification des sous-menus enfants
Pour vérifier si un menu a des sous-menus enfants, nous pouvons modifier le code ci-dessus comme suit :
<code class="php"><?php $list = $obj->childmenu($parentid); foreach($list as $menu) { extract($menu); if (count($obj->childmenu($id)) > 0) { echo '<li><a href="#">'.$name.'</a><ul class="submenu">'; $list2 = $obj->childmenu($id); foreach($list2 as $menu2) { extract($menu2); echo '<li><a href="#">'.$name.'</a></li>'; } echo '</ul> </li>'; } else { echo '<li><a href="#">'.$name.'</a></li>'; } } ?></code>
Ce code utilise une boucle imbriquée pour récupérer et afficher les sous-menus, garantissant que tous les niveaux de la hiérarchie sont capturés. Le résultat sera une structure HTML imbriquée avec des éléments de menu et leurs sous-menus correspondants.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!