無制限の深さの階層メニューの構築
このガイドでは、次を使用して無制限のレベルを持つネストされたメニューを作成する方法を説明します。 PHP と MySQL。
データベース構造
各メニュー項目が「id」、「parent_id」、「title」を持つデータベース構造を使用します。 「parent_id」フィールドにはメニュー項目の親の ID が格納され、「0」はトップレベルのメニューを示します。
サブメニューの取得
サブメニューを取得するには親メニューの場合、次のコードを使用できます。
<code class="php"><?php $list = $obj->childmenu($parentid); foreach($list as $menu) { extract($menu); echo '<li><a href="#">'.$name.'</a></li>'; } ?></code>
子サブメニューの確認
メニューに子サブメニューがあるかどうかを確認するには、上記のコードを変更します。
<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>
このコードは、ネストされたループを使用してサブメニューを取得して表示し、階層のすべてのレベルが確実にキャプチャされるようにします。結果は、メニュー項目とそれに対応するサブメニューを含むネストされた HTML 構造になります。
以上がPHP と MySQL で無制限の深さの階層メニューを構築するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。