簡體   English   中英

如何使用PHP和MySQL顯示帶有許多子類別的側面導航菜單?

[英]How to display a side nav menu with many sub-categories using PHP and MySQL?

好的,我想知道如何使用PHP和MySQL創建和顯示帶有許多類別和子類別的側面導航菜單?

我只是不知道從哪里開始編寫PHP代碼?

<ul>
   <li><a href="" title="">First Nested Link</a></li>
   <li><a href="" title="">First Nested Link</a></li>
   <li><a href="" title="">First Nested Link</a>
      <ul>
        <li><a href="" title="">Second Nested Link</a></li>
        <li><a href="" title="">Second Nested Link</a></li>
        <li><a href="" title="">Second Nested Link</a>
          <ul>
            <li><a href="" title="">Third Nested Link</a></li>
            <li><a href="" title="">Third Nested Link</a></li>
            <li><a href="" title="">Third Nested Link</a>
              <ul>
                <li><a href="" title="">Fourth Nested Link</a></li>
                <li><a href="" title="">Fourth Nested Link</a></li>
                <li><a href="" title="">Fourth Nested Link</a></li>
              </ul>
            </li>
            <li><a href="" title="">Third Nested Link</a></li>
            <li><a href="" title="">Third Nested Link</a></li>
          </ul>
        </li>
        <li><a href="" title="">Second Nested Link</a></li>
        <li><a href="" title="">Second Nested Link</a></li>
      </ul>
   </li>
   <li><a href="" title="">First Nested Link</a></li>
   <li><a href="" title="">First Nested Link</a></li>
</ul>

這是我的MySQL表。

* categories
      id | category_name | description
* sub_categories
      id | parent_id | category_name | description

您的類別只需要一張桌子; 只需將頂級類別的parent_id字段設置為null即可。

對於實際生成HTML,您可以按照以下方式進行操作(偽代碼),其中$category_data是二維數組中查詢的結果,而$category_id是要生成的父類別的ID。 要開始使用,請使用$category_id = 0

function print_category($category_data, $category_id)
{
    print "<ul>";
    foreach ($category_data as $category)
    {
        if ((integer)$category['parent_id'] == $category_id)
        {
            print "<li>" . $category['category_name'] . "</li>";
            print_category($category_data, $category['id']);
        }
    }
    print "</ul>";
}

您必須針對自己的布局和表結構進行修改。 通過將數組轉換為三維數組$category_data[parent_id][id][category_row]可以提高性能(如果您有很多類別)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM