新手:PHP读指定分类下面的所有分类

我想通过ID 1读取二级与三级分类

现在是可以直接读出来指定ID 1分类了,但有几个问题:
1. 我想通过orders进行排序

2. 这里面我有三级菜单, 怎么让循环时以加UL的形式,如
<ul>
<li>二级</li>
<li><ul><li>二级子类</li></ul></>
</ul>
3. rootid里的一级也有它自己的ID(1) 要怎么样不显示一级分类?

数据库表有
typeid 是栏目ID
rootid 上级ID
orders 是排序ID

$query=mysql_query("select * from b_mtype where rootid = 1");
while($arr=mysql_fetch_array($query))
{

?>
<tr>
<td bgcolor="#FFFFFF"><?php echo $arr["typeid"];?></td>
<td bgcolor="#FFFFFF">
<?php
if ($arr["depth"]>0){
for($i=1;$i<=$arr["depth"];$i++){ echo " ";}
}
?>

<? if($arr["child"]>0) { echo "+";}else {echo "-";}?>
<? if($arr["parentid"]==0) { echo "<b>";}?>
<? echo $arr["typename"];?>
</td>
</tr>
最新回答
假丶惆怅

2024-10-23 08:16:24

是无限极分类吗。如果是的话,这里有我自己练习做的无限极分类,可以参考下。

$array=array(
    array('id'=>1,'pid'=>0,'name'=>'北京'),
    array('id'=>2,'pid'=>1,'name'=>'丰台'),
    array('id'=>3,'pid'=>0,'name'=>'浙江'),
    array('id'=>4,'pid'=>3,'name'=>'台州'),
    array('id'=>5,'pid'=>2,'name'=>'石榴庄'),
    array('id'=>6,'pid'=>5,'name'=>'东街二区'),
    array('id'=>7,'pid'=>4,'name'=>'临海')
    );
//数组,pid, 等级.递归方法找子孙树
function getTreeArray($arr,$pid,$lev=0){
    //$tree=array();
    static $tree=array();
    foreach ($arr as $key => $value) {
        if($value['pid']==$pid){
            $value['lev']=$lev;
            $tree[]=$value;
            //$tree=array_merge($tree,getTreeArray($arr,$value['id'],++$lev));
            getTreeArray($arr,$value['id'],$lev+1);
        }
    }
    return $tree;
}
/*
北京
--丰台
----石榴庄
------东街二区
浙江
--台州
----临海
 */

$tree = getTreeArray($array,0);
var_dump($tree);
foreach ($tree as $key => $value) {
    echo str_repeat('--', $value['lev']),$value['name'],'<br/>';
}

只要把‘--’ 换成HTML代码就可以实现