在PHP 和MySQL 中建立樹形選單
當嘗試在PHP 中從MySQL 資料庫中建立無序列表選單樹時,效能效率至關重要。為了實現這一點,可以利用單一資料庫查詢並避免遞歸。
解決方案:
以下 PHP 函數將頁面物件陣列作為輸入,每個都包含 ID、標題和父 ID 屬性。它透過遍歷物件遞歸地產生 HTML 列表結構。
<code class="php">function build_menu($objects, $parent = 0) { $result = "<ul>"; foreach ($objects as $object) { if ($object['parent_id'] == $parent) { $result .= "<li>{$object['title']}"; if (has_children($objects, $object['id'])) { $result .= build_menu($objects, $object['id']); } $result .= "</li>"; } } $result .= "</ul>"; return $result; }</code>
用法:
要使用該函數,可以檢索頁面物件陣列從資料庫中取得並作為參數傳遞給它。函數將傳回代表選單樹的格式化 HTML 清單結構。
<code class="php">$page_objects = get_page_objects_from_database(); $menu_html = build_menu($page_objects);</code>
提高效率:
為了獲得最佳效率,建議使用對結果進行排序SQL 查詢。這確保了按邏輯順序處理對象,從而最大限度地減少不必要的比較和迭代。此外,資料庫模式中的權重或序列列可以幫助組織選單樹。
以上是如何透過單一查詢在 PHP 和 MySQL 中高效建立樹形選單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!