溫馨提示×

構建自引用數據庫查詢的PHP遞歸函數

PHP
小樊
106
2024-04-26 20:08:51
欄目: 編程語言

在PHP中構建一個遞歸函數來查詢自引用數據庫表可以像下面這樣:

function getChildren($parent_id, $conn) {
    $query = "SELECT * FROM your_table WHERE parent_id = $parent_id";
    $result = mysqli_query($conn, $query);

    $children = array();
    while ($row = mysqli_fetch_assoc($result)) {
        $child_id = $row['id'];
        $row['children'] = getChildren($child_id, $conn);
        $children[] = $row;
    }

    return $children;
}

// 假設$parent_id是根節點的ID
$parent_id = 0;

// 連接到數據庫
$conn = mysqli_connect("localhost", "username", "password", "database");

// 調用遞歸函數獲取所有子節點
$tree = getChildren($parent_id, $conn);

// 關閉數據庫連接
mysqli_close($conn);

// 輸出樹結構
echo json_encode($tree);

在這個函數中,我們首先查詢具有給定父ID的所有記錄,并逐個迭代這些記錄。對于每個記錄,我們遞歸調用getChildren函數,以獲取其子節點,并將這些子節點作為記錄的children屬性添加到結果數組中。最后,我們返回包含根節點及其所有子節點的樹結構。

請注意,這只是一個簡單的示例,實際應用中可能需要根據具體情況進行適當的修改和優化。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女