1

我有sql结构

id parent_id
1     0
2     1
3     2
4     3
5     4
6     5
7     1
8     7
9     8

我想使用 php 调用 id=1 的所有子节点到第 n 个子节点

我怎么才能得到它。我是通过使用 php 回调函数来构建的。

4

1 回答 1

0

通过使用递归,您可以...

<?php
$arrayParent = $this->ToDatabase->("SELECT * FROM table WHERE parent_id = 0");
BuildList($arrayParent, 0);

function BuildList($arrayElements, $depth)
{
    foreach($arrayElements as $element)
    {
        echo str_repeat("&nbsp;&nbsp;", $depth) . $element["id"];
        $depth++;
        $totalUnder = $this->ToDatabase->("SELECT * FROM table 
                        WHERE parent_id = " . (int)$element["id"]);
        if(count($totalUnder) > 0)
            $depth = BuildList($totalUnder, $depth); //$totalUnder fetch to array and step deeper...

        return $depth;
    }
}
?>
于 2013-03-05T10:59:15.483 回答