2012-09-05 75 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注入等。