要用递归的方法:function delete($id){ $sql = "delete from tablename where id=$id"; //执行SQL $sql = "select id from tablename where uid=$id"; //查询出id $this->delete($row["id"]); }
我说过要先得到子id楼上这样做是错误的.一定要先得到子id,另外递归调用条件判断要注意.
一个简单的思路,你首先得到你需要删除的全部 树,select内联下就可以了,然后把全部的id 用join起来,用,链接的字符串strID,然后你删除的时候 delete from tablename where id in( strID )
简单,以删除id=12及其子分类为例 id uid type roue_id roue (12, 3, win200', 0:1:3:11', 系统:windows:win200' (17, 12, server', 0:1:3:11:17', 系统:windows:win200:server' (18, 12, pro', 0:1:3:11:18', 系统:windows:win200:pro' 1、从id或roue得到roue_id到$p 2、"delete from tbl_name where roue_id like '$p%'"
呵呵,我用的和唠叨老大一样的方法,就是数据库和你建的有点不一样。 id pid name 1 001 a 2 002 b 3 001001 c 4 001002 d 5 002001 e 6 001002001 f 删除a及其下属的时候 delete from table where pid like '001%'
roue_id这个字段。。
$sql = "delete from tablename where id=$id";
//执行SQL
$sql = "select id from tablename where uid=$id";
//查询出id
$this->delete($row["id"]);
}
id uid type roue_id roue
(12, 3, win200', 0:1:3:11', 系统:windows:win200'
(17, 12, server', 0:1:3:11:17', 系统:windows:win200:server'
(18, 12, pro', 0:1:3:11:18', 系统:windows:win200:pro'
1、从id或roue得到roue_id到$p
2、"delete from tbl_name where roue_id like '$p%'"
id pid name
1 001 a
2 002 b
3 001001 c
4 001002 d
5 002001 e
6 001002001 f
删除a及其下属的时候 delete from table where pid like '001%'