删除无限分类并同时删除它下面的所有子分类的方法
author:一佰互联 2019-04-30   click:172
复制代码 代码如下:
$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;
}