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 に答える