2011-01-26 35 views
0

我在寻找一个PHP函数或MySQL的存储过程,它输出以下内容:多级分类列表/树PHP函数

1: category 1 > category 2 > category 3 > category 4 
2: category 1 > category 2 > category 3 > category 4 
... 
n: category n > category o > category p > category p 

所以基本上我想最后一级类别ID案文显示如上所述,层次为的所有父类别。我有以下表格: 类别(id,title,level,parentid); 级别随类别深度而增加。

我在谷歌上尝试过很多,但找不到解决方案。你能帮我么?

感谢 -Navi

回答

0

你可以做somethig这样的:

$result = mysql_query("SELECT * FROM categories WHERE level = 1"); 
$branches = 0; 
$tree= array(); 
while($rows = mysql_fetch_array($result)){ 
    echo "X->".$rows['title']."<br>"; 
    $GLOBALS['tree'][$branches][] = $rows['title']; 
    getChildren($rows['id'], $branches); 
    $branches ++; 
} 

function getChildren($id, $index){ 
    $query = "SELECT * FROM categories WHERE parentid = $id;"; 
    $result = mysql_query($query); 
    while($rows = mysql_fetch_array($result)){ 
     echo $index."->".$rows['title']."<br>"; 
     $GLOBALS['tree'][$index][] = $rows['title']; 
     getChildren($rows['id'], $index); 
    } 
} 

echo "<pre>"; 
print_r($tree); 
echo "</pre>"; 

你将不得不在变量$树中的所有“分支”,从此只需要使用的foreach透过树枝来获得。 ..

希望这会有所帮助