2012-09-05 73 views
5

创建树我有一个表通过递归函数

id,name,parent_id,designation列,

我想通过在PHP递归函数创建树。

parent_id正在寻找id列,如果用户登录,则用户可以根据parent_id查看自己和所有以下记录。

一个 | B | c | D | E | (A,B,C,D,E,F)details.and如果B登录然后看到(B,C,D,E,F)和所有。 ..如果F登录,那么他只能看到自己的记录。 感谢提前

+0

“id”和“parent_id”之间是否存在一对一的映射关系,在这种情况下,您只是获得了“ids”链接,它不会是树。 – mtk

+0

是的,我的表格在id和parent_id之间一一映射 – user1625518

回答

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; 
} 

然后,只需调用具有记录功能,你希望它的父母来自:

$first_parent_id = 8; 
fetch_parent($first_parent_id); 

注:

  • 的$父VAR也可以是一个数组,取决于MySQL的结果集
  • 请注意请在查询中检查$ parent_id以进行mysql注入等。