我已经构建了这样的用户表:
现在我想选择3个蓝色行。 我已经构建了以下函数:
function display_children($parent, $array = array()) {
global $db;
$stmt = $db->prepare("SELECT id AS man, parent_id FROM user WHERE parent_id= ?");
$stmt->execute(array($parent));
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
display_children($row['man'], $array);
$array[] = array("man" => $row['man'], "parent_id" => $row['parent_id']);
echo $row['man']."\n"; //for debug
}
return $array;
}
print_r(display_children(50001));
我的输出是:
50002
50004
50003
Array
(
[0] => Array
(
[man] => 50002
[parent_id] => 50001
)
[1] => Array
(
[man] => 50003
[parent_id] => 50001
)
)
前三行是正确的,但数组缺少一行。 问题是,第一个parent_id有两行。但是数组在开始时是空的。我的查询有解决方案吗?
答案 0 :(得分:0)
解决方案是从
更改以下行display_children($row['man'], $array);
到
$array = display_children($row['man'], $array);