当我删除主类别时,我不知道如何删除子子类别。
我提出了两个问题。当我删除子和子子时,这有效。但如果我要删除的类别是主猫。我无法删除 subs sub。
如果id为1,我应该怎么做才能删除汽车、菲亚特和 Pandas ?
cats_id cats_parentid cats_name
1 0 car
2 1 fiat
3 2 panda
mysql_query("DELETE FROM cats
WHERE cats_id='".$id."'") or die(mysql_error());
mysql_query("DELETE FROM cats
WHERE cats_parentid='".$id."'") or die(mysql_error());
最佳答案
您可以像这样使用递归函数调用(在 PHP 中):
function delete_subcats($id) {
$res = mysql_query('SELECT cats_id FROM cats WHERE cats_parentid = '.$id);
if ($res) {
while ($row = mysql_fetch_assoc($res))
delete_subcats($row['cats_id']);
}
mysql_query('DELETE FROM cats WHERE cats_id = '.$id);
}
或者,如果您的表使用 InnoDB 引擎,则需要创建外键
ALTER TABLE cats ADD FOREIGN KEY (cats_parentid) REFERENCES cats(cats_id) ON DELETE CASCADE;
删除父记录后,所有连接的记录将被MySQL数据库删除,无需其他查询。
关于php - 如何删除主分类和子分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6150964/