我建立了这样的用户表:
现在,我要选择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有两行。但是数组开头是空的。我的查询有解决方案吗?
最佳答案
解决方案是将以下行从
display_children($row['man'], $array);
至
$array = display_children($row['man'], $array);
关于php - php mysql选择组织结构图/多层次结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36601018/