ホームページ  >  記事  >  データベース  >  PHP と MySQL で無制限の深さの階層メニューを構築するには?

PHP と MySQL で無制限の深さの階層メニューを構築するには?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-28 22:20:02676ブラウズ

How to Build Hierarchical Menus With Unlimited Depth in PHP and MySQL?

無制限の深さの階層メニューの構築

このガイドでは、次を使用して無制限のレベルを持つネストされたメニューを作成する方法を説明します。 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。