2012-07-25 53 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