php树状显示多个目录中的一个目录下的所有栏目

来源:百度知道 编辑:UC知道 时间:2024/05/30 22:59:59
这是树状显示的代码:
<?
include("conn.php");

function tree1($parent_id = 0)//从parent_id=0开始,即显示整个表中的数据,意思就是下面的sql语句从父目录parent_id=0开始查找,就是查找整个表
{
$sql = "select list_name,id,parent_id,deep from web_list where parent_id = $parent_id order by list_name asc";//数据库表中的四个字段,即:list_name,id,parent_id,deep;list_name为目录的名称,parent_id为父目录的id,deep为该目录的深度(即1级目录、2级目录等)
$rs = mysql_query($sql);
while($ra = mysql_fetch_row($rs))
{
$list_name=$ra[0];//sql语句中的第1个字段,即 list_name 的值
$name_id=$ra[1];//sql语句中的第2个字段,即 id 的值
$par_id=$ra[2];
$name_deep=$ra[3];

for($i=2;$i<101;$i++)//用一个for循环显示树状缩进
{
if($name_deep==$i)
{
$sj1='┆';
$sj='├ ';
for($j=1;$j<$i;$j++)
{
$sj=$sj1.$sj;
}
}
}

echo $sj.$list_name."<br>";//显示数据
tree1($ra[1]);

可以用无限级别分类,只要3个字段就可以了。
也就是ID,P_ID(父ID),NAME(名字)。

$cate_search_sql="SELECT * FROM category";
$cate_search_result=mysql_query($cate_search_sql);
while($cate_search_row=mysql_fetch_object($cate_search_result))
{
$parentid[$cate_search_row->c_id]=$cate_search_row->p_id;
$subid[$cate_search_row->p_id][]=$cate_search_row->c_id;
$name[$cate_search_row->c_id]=$cate_search_row->c_name;
}

不知道你能不能看懂。

很好很强大。c_id就是ID吧

在你的while前加个判断: if(!$rs) return;
有错误把信息显示出来。