qiushuiwuhen(秋水无恨)请进来,我有个问题想向你请教? 其实我不建议一次展开所有树结构.从程序性能上考虑.逐层产生下一层结构比较合理,用户相应也不是太慢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也想这样做,我这样做只对数据库操作了一次,效果是做出来了的,我觉得也有一点慢,不过不知道怎么改善。 简要作了做,感觉还挺快的增加了一个字段status,表示是否叶节点<? define("enter",chr(13).chr(10)); $conn=mysql_connect("localhost","root",""); mysql_select_db("test",$conn); $sql="select * from category order by category_id"; $query=mysql_query($sql); echo "<ul>".enter; $plen=1; while($arr=mysql_fetch_array($query)){ $nlen=strlen($arr[category_id]); if($plen>$nlen){for(;$plen>$nlen;$plen-=2)echo "</ul>".enter;} if($arr[status]==1){ echo '<li id="foldheader">'.$arr[category_name].'</li>'.enter; }else{ echo '<li id="foldheader">'.$arr[category_name].'</li><ul id="foldinglist">'.enter; $plen+=2; } } for($i=0;$i<$plen-2;$i+=2)echo "</ul>";?>效果如下:<ul><li id="foldheader">货物类</li><ul id="foldinglist"><li id="foldheader">食物</li><ul id="foldinglist"></ul><li id="foldheader">交通工具</li><ul id="foldinglist"><li id="foldheader">汽车</li><ul id="foldinglist"><li id="foldheader">轿车</li><ul id="foldinglist"><li id="foldheader">普通轿车</li><li id="foldheader">高级轿车</li></ul><li id="foldheader">载客汽车</li><ul id="foldinglist"><li id="foldheader">旅行面包车</li><li id="foldheader">公共汽车</li></ul></ul><li id="foldheader">飞机</li><ul id="foldinglist"></ul></ul></ul><li id="foldheader">房产类</li><ul id="foldinglist"></ul> 哇,这也太厉害了吧,真是佩服的五体投地了。 这算什么,秋水还有很多更让你佩服的.... php中多重include 路径问题 这个数组最后结果是什么? 更新网页模版 xhtml中<a href="?p1=..&p2=.." 不能加两个以上的参数? php中怎样把从数据库中取出的数据显示在textarea中? 执行代码时弹出一“文件下载”对话框,要我下载执行的文件?怎么回事? php与mysql经常出现乱码这是为什么呢 问一个初级的问题???哪位有空帮忙解释一下。 金领办公系统php版 使用数据库是否还要考虑lock的问题? 急急急!求高手帮助!!!!!!! 请问如何将table中的单元格设置为可写?
增加了一个字段status,表示是否叶节点
<?
define("enter",chr(13).chr(10));
$conn=mysql_connect("localhost","root","");
mysql_select_db("test",$conn);
$sql="select * from category order by category_id";
$query=mysql_query($sql);
echo "<ul>".enter;
$plen=1;
while($arr=mysql_fetch_array($query)){
$nlen=strlen($arr[category_id]);
if($plen>$nlen){for(;$plen>$nlen;$plen-=2)echo "</ul>".enter;}
if($arr[status]==1){
echo '<li id="foldheader">'.$arr[category_name].'</li>'.enter;
}else{
echo '<li id="foldheader">'.$arr[category_name].'</li><ul id="foldinglist">'.enter;
$plen+=2;
}
}
for($i=0;$i<$plen-2;$i+=2)echo "</ul>";
?>效果如下:
<ul>
<li id="foldheader">货物类</li><ul id="foldinglist">
<li id="foldheader">食物</li><ul id="foldinglist">
</ul>
<li id="foldheader">交通工具</li><ul id="foldinglist">
<li id="foldheader">汽车</li><ul id="foldinglist">
<li id="foldheader">轿车</li><ul id="foldinglist">
<li id="foldheader">普通轿车</li>
<li id="foldheader">高级轿车</li>
</ul>
<li id="foldheader">载客汽车</li><ul id="foldinglist">
<li id="foldheader">旅行面包车</li>
<li id="foldheader">公共汽车</li>
</ul>
</ul>
<li id="foldheader">飞机</li><ul id="foldinglist">
</ul>
</ul>
</ul>
<li id="foldheader">房产类</li><ul id="foldinglist">
</ul>