首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

无限分门别类的删除操作

2013-10-13 
无限分类的删除操作通过父ID关联的无限分类表,如果要删除其中的某一时,怎么删除它的所有后代呢?以前版主写

无限分类的删除操作
通过父ID关联的无限分类表,如果要删除其中的某一时,怎么删除它的所有后代呢?
以前版主写过 不用递归构造树型数组,所以这里看是否能有不用递归的方法能找出所有的后代元素可用于删除无限分门别类的删除操作
[解决办法]
找到孤儿
SELECT id FROM 表 where pid not in (select id from 表)
后删除对应的记录

需要在循环中进行,因为每次删除就可能有新的孤儿产生

大致这样:


do {
  $rs = mysql_query('SELECT group_concat(id) FROM 表 where pid not in(select id from 表)');
  list($g) = mysql_fetch_row($rs);
  mysql_query("delete from 表 where id in (g)");
}where(mysql_affected_rows());

[解决办法]
左右值 + 上下值  就不用递归了 儿子找爸 上下值 祖宗找下面 左右值

热点排行