构建自引用数据库查询的PHP递归函数

PHP
879
2024/3/27 20:08:51
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在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属性添加到结果数组中。最后,我们返回包含根节点及其所有子节点的树结构。

请注意,这只是一个简单的示例,实际应用中可能需要根据具体情况进行适当的修改和优化。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: php如何给mysql发送心跳包