通过递归函数创建树

use*_*518 5 php mysql recursion

我有一张桌子

id,name,parent_id,designation 列,

我想通过PHP中的递归函数创建树.

每个人都parent_id在查看id列,如果用户登录,那么用户可以看到自己和所有以下记录parent_id.

喜欢

A | B | c | D | E | F

如果一个用户登录,那么他可以全部(A,B,C,D,E,F)详细信息.如果B登录然后看到(B,c,D,E,F)和所有...如果F登录然后他只能看到自己的记录..感谢您的进步

gio*_*gio 1

创建一个函数 fetch_parent;

function fetch_parent($parent_id) {
    $query = 'SELECT * FROM `my_table` WHERE `parent_id`='. $parent_id;
    // use your own sql class/function whatever to retrieve the record and store it in variable $parent
    if($parent->parent_id !== null) { // asuming a 'root' record will have null as it's parent id
        fetch_parent($parent->parent_id); // here you go with your recursion
    }
    return;
}
Run Code Online (Sandbox Code Playgroud)

然后只需使用您想要其父级的记录调用该函数即可:

$first_parent_id = 8;
fetch_parent($first_parent_id);
Run Code Online (Sandbox Code Playgroud)

笔记:

  • $parent var 也可以是一个数组,具体取决于 mysql 结果集
  • 请检查查询中的 $parent_id 是否有 mysql 注入等。