我建立了这样的用户表:

php - php mysql选择组织结构图/多层次结构-LMLPHP

现在,我要选择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/

10-14 18:54
查看更多