2012-07-25 52 views
0

下面是我的SQL表顯示在PHP第n級類別

id parent_id 

1  0 
2  0 
3  1 
4  1 
5  3 
6  5 

我想顯示陣列像下面

array 
{ 
    1 
    sub{ 
     3 
      sub{ 
       5 
      } 
     4 
     } 
} 

第n個級別層次關係

我該如何做到這一點在PHP

+0

你到目前爲止做了什麼? – diEcho 2012-07-25 13:39:30

+0

我必須動態地實現第n級關係, – 2012-07-25 13:41:39

+0

@vsmdk你也將使用遞歸 – 2012-07-25 13:58:04

回答

1

首先選擇所有根目錄類別與父母id 0和傳遞他們的ID到這個rec​​ursi ve功能

function getChildCats($catId) 
{ 
    $sql = "select * from categories where parent_id = $cateID"; 
    $res = mysql_query($sql); 
    $raws[]; 
    while($raw = mysql_fetch_assoc($res)) 
    { 
     $raw['sub'] = getChildCats($raw['id']) 
     $raws[] = $raw; 
    } 
    return $raws; 
} 
+0

遞歸執行SQL查詢?對我來說似乎相當低效。 – nickb 2012-07-25 13:50:13

+0

@nickb我也是......但它是首先彈出的內容,並不知道如何實際編寫這樣的查詢,可以達到目的。你可以探索嗎? – 2012-07-25 13:55:40

+0

@nickb一件事是肯定它會工作:) – 2012-07-25 13:56:11