服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服务器之家 - 编程语言 - PHP教程 - 删除无限分类并同时删除它下面的所有子分类的方法

删除无限分类并同时删除它下面的所有子分类的方法

2019-11-06 11:14php教程网 PHP教程

今天晚上上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; 

延伸 · 阅读

精彩推荐