我正在寻找输出以下内容的php函数或mysql存储过程:
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,标题,水平,parentId的); 级别随着类别深度而增加。
我在谷歌上做了很多但是找不到解决方案。你能帮我么?
感谢 -Navi
答案 0 :(得分:0)
您可以这样做:
$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>";
你将在变量$ tree中拥有所有“分支”,然后只需使用foreach来通过分支......
希望这有帮助