A method that deletes an infinite class and simultaneously deletes all subclasses below it

  • 2020-03-31 20:59:52
  • OfStack

 
$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 (' Delete the success '); 
exit; 
} 
else 
{ 
alert (' Delete failed '); 
exit; 
} 
} 

GetChildrenIds is a function that has been given before. If you don't know, refer to the custom function to get the set of subclass ids under the unlimited category ID

The custom function gets the subclass ID set under the infinite class ID
 
 
//The pool gets the set of subclass ids under the infinite category 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; 
} 

Related articles: