如何使用 PHP 和 MySQL 檢索分層資料結構中的所有子節點?

Linda Hamilton
發布: 2024-11-06 12:12:02
原創
291 人瀏覽過

How to Retrieve All Child Nodes in a Hierarchical Data Structure with PHP and MySQL?

使用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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!