簡體   English   中英

php pdo遞歸導航菜單功能

[英]php pdo recursive function for navigation menu

我試圖用來自數據庫的行來做一個菜單,我一直在這里閱讀stackoverflow上關於做一個遞歸函數來評估parentId和Id並建立較低級別的選項,但是運氣不佳。 還嘗試將sql答案轉換為沒有運氣的多維數組...

基本上,我需要根據父級構建列表元素集,例如Dashboard.php是son.php的父級

這是我的代碼:

function buildMenu($userType){

    try{

        $db   = new db();
        $conn = $db->conn();

        $SQL_BUILD_MENU = "select usertypes.id as menuId, 
        menu.name as menuName, menu.link as menuLink, 
        usertype_menu.parent_id as 
        parent from usertypes inner join usertype_menu on usertypes.id =                                usertype_menu.usertype_id inner join 
        menu on usertype_menu.menu_id = 
        menu.id where usertypes.name='".$userType."'";

        $conn->prepare($SQL_BUILD_MENU);
        foreach($check = $conn->query($SQL_BUILD_MENU) as $row) {
                echo "<ul>";
                echo "<a href=".$row['menuLink']."><li>" . $row['menuName'] . "</li></a>";
                echo "</ul>";        
        }

    }

    catch(Exception $e){

        echo "Se ha presentado un error en buildMenu".$e;

        }


    }

}


+----+--------+-------------+-----------------+--------+
| id | menuId | menuName    | menuLink        | parent |
+----+--------+-------------+-----------------+--------+
|  1 |      1 | Dashboard   | dashboard.php   | 0      |
|  2 |      1 | Interaction | interaction.php | 0      |
|  3 |      1 | Son         | Son.php         | 1      |
+----+--------+-------------+-----------------+--------+

提前致謝。

首先,清理您的查詢。 使用准備好的語句並綁定參數,不要添加字符串。

其次,立即獲取所有相關數據並從中構建數據結構。 遞歸不是這里的答案。

第三,無序列表不能將文本作為子級。 您需要將它們封裝在LI節點中。

<ul>
   <li>Example 1</li>
   <li>Example 2</li>
   <li>
     Example 3 with a child list
     <ul>
        <li>Example 3 Child 1</li>
     </ul>
   </li>
</ul>
  • 例子1
  • 例子2
  • 帶有子列表的示例3
    • 示例3子1

暫無
暫無

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

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