删除无限分类并同时删除它下面的所有子分类的方法
更新时间:2010年08月08日 16:57:03 作者:
今天晚上上Q的时候 ,一个以前的学员在网上问我,怎么删除一个无限分类的时候同时删除它下面的所有子分类。我把代码稍微整理了一下,发出来,放在php学员问答里面,方便以后的人查看 。
复制代码 代码如下:
$act = isset ($_GET['act']) ? trim ($_GET['act']) : ";
if ($act == 'del')
{
$sort_id = isset ($_GET['id']) ? intval($_GET['id']) : '0' ;
$sort_ids = $sort_id;
$childrenIds = getChildrenIds ($sort_id);
if (!empty ($childrenIds))
{
$sort_ids .= $childrenIds;
}
$sql = “delete from `article_sort` WHERE `sort_id` in ({$sort_ids})";
$res = mysql_query ($sql);
if ($res)
{
alert ('删除成功');
exit;
}
else
{
alert ('删除失败');
exit;
}
}
getChildrenIds 这个函数以前已经给出来过,不清楚的请参考 自定义函数之获取无限分类ID下的子类ID集
自定义函数之获取无限分类ID下的子类ID集
复制代码 代码如下:
/*—————————————————— */
//– 获取无限分类ID下面的子类ID集
//– $sort_id = $sort_id.getChildrenIds($sort_id);
//– $sql = " ….. where sort_id in ($sort_id)";
/*—————————————————— */
function getChildrenIds ($sort_id)
{
global $db;
$ids = ";
$sql = "SELECT * FROM ".$db->table('article_sort')." WHERE `parent_id` = '{$sort_id}'";
$res = $db->query ($sql);
if ($res)
{
while ($row = $db->fetch_assoc ($res))
{
$ids .= ','.$row['sort_id'];
$ids .= getChildrenIds ($row['sort_id']);
}
}
return $ids;
}
您可能感兴趣的文章:
- 解析左右值无限分类的实现算法
- 解析thinkphp的左右值无限分类
- php无限分类且支持输出树状图的详细介绍
- 利用php递归实现无限分类 格式化数组的详解
- PHP无限分类(树形类)的深入分析
- 基于php无限分类的深入理解
- 比较简单实用的PHP无限分类源码分享(思路不错)
- PHP 无限分类三种方式 非函数的递归调用!
- PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
- 一个很简单的无限分类树实现代码
- php递归实现无限分类生成下拉列表的函数
- php用数组返回无限分类的列表数据的代码
- php 无限分类的树类代码
- asp.net 无限分类
- 几篇关于无限分类算法的文章
- 自己前几天写的无限分类类
- 帖几个PHP的无限分类实现想法~
- PHP 循环删除无限分类子节点的实现代码
最新评论