使用MySQL 和PHP 檢索分層資料
從資料庫中檢索分層資料可能具有挑戰性,特別是使用鄰接列表資料模型時。本問題旨在透過建立一個傳回指定父節點下的所有子節點、孫子節點等的函數來解決此問題。
建立分層樹
首先,提供的 PHP 程式碼從 MySQL 表中擷取資料並將其儲存在關聯數組中。鄰接列表資料模型透過將父子關係儲存在單列(即parent_id)中來表示層次結構。
為了將此資料轉換為樹狀結構,buildtree() 函數遞歸地遍歷數組,將每個節點的 ID 及其數據,並建立一個以子節點為元素的巢狀數組。
取得父節點下的節點
fetch_recursive() 函數旨在檢索所有子節點在指定的父項下。它從指定的父 ID 開始遍歷樹狀結構。如果節點的父 ID 與指定的父 ID 匹配,則會將該節點的資料新增至結果陣列中,並繼續探索子節點。
範例用法
示範功能,以下 PHP 程式碼建立一棵樹並擷取特定 ID 下的子節點:
<?php $data = [ ['id' => 1, 'name' => 'Electronics', 'parent_id' => 0], ['id' => 2, 'name' => 'Televisions', 'parent_id' => 1], ['id' => 3, 'name' => 'Portable Electronics', 'parent_id' => 1], // ... additional data ]; $tree = buildtree($data); $child_nodes = fetch_recursive($tree, 3); foreach ($child_nodes as $node) { echo $node['name'] . '<br>'; }
以上是如何使用 PHP 和 MySQL 檢索分層資料結構中的所有子節點?的詳細內容。更多資訊請關注PHP中文網其他相關文章!