PHP删除无限分类并同时删除它下面的..
时间:2010-10-08 来源:peishuai1987
今天晚上上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;
- }
相关阅读 更多 +