1.连接数据库(略)
2.$sql="select * from 表名 where pid=10 ";
$result = mysql_query($sql);
if(mysql_num_rows ($result)>0)
ShowTreeMenu($link,$result,$layer,$ID);
3.function ShowTreeMenu($link,$result,$layer)
{
while($menu = $db->dbFetch($result))
{
$sql="select * from 表名 where pid=$menu[ID]";
$result_sub = $mysql_query($sql);
if($db->recNum($result_sub)>0)
{
mysql_query("update 表名 set state=1");
$layer++;
ShowTreeMenu($link,$result_sub,$layer);
$layer--;
}
}
}
大体思路是这样,代码没有仔细的调过。
2.$sql="select * from 表名 where pid=10 ";
$result = mysql_query($sql);
if(mysql_num_rows ($result)>0)
ShowTreeMenu($link,$result,$layer,$ID);
3.function ShowTreeMenu($link,$result,$layer)
{
while($menu = $db->dbFetch($result))
{
$sql="select * from 表名 where pid=$menu[ID]";
$result_sub = $mysql_query($sql);
if($db->recNum($result_sub)>0)
{
mysql_query("update 表名 set state=1");
$layer++;
ShowTreeMenu($link,$result_sub,$layer);
$layer--;
}
}
}
大体思路是这样,代码没有仔细的调过。
名称 ID Pid State fullidlist
目录一 10 0 0 NULL
目录一:1 11 10 0 10.
目录一:1:1 12 11 0 10.11.
目录一:2 13 10 0 10.
目录二 14 0 0 NULL
目录二:1 15 14 0 14.以目录一:1:1为例,10.11.表示这个节点的寻址路径是10-->11,表示该点是10.11下这层下的子节点,这样当你选中“目录一”这一点时,以“10.”开头的点就是该点下的子孙节点,通过sql语句就可以方便实现你所需要的结果。
因为这个字段只在这个功能上应用~~~不论你其他的地方update,delete,select,实际上只要不对新增字段设置完整性约束,那就不会有任何问题~~~小鬼的方法挺好,你还是试试吧~~~~还有,不知道能不能用SQL语句来完成~~~~
我想总可以通过内联来做一个集合~~~然后在这个集合中查询某字段为10的记录~~~
还没有想清楚,不过如果你的目录层次不是无限大,这个方法应该可以~~~~