【发布时间】:2021-09-08 17:38:41
【问题描述】:
我在使用 PHP 递归函数删除所有子节点和父节点时遇到问题。数据库表结构遵循树形结构。
下面是示例表结构:
MySQL Table: folders
id name parentid
1 A1 0
2 A1-1 1
3 A1-2 2
4 A1-3 3
5 A2 0
6 A2-1 5
7 A2-2 6
8 A2-3 7
id = the id of the category
name= folder name
parent = the id of the parent category
根据表格:文件夹。比如我要删除id是1,下面的子节点(id是2,3,4)就应该删掉。
我按照下面的示例编码来执行删除递归函数,但无法工作并崩溃。
<?php
function remrecurs($id) {
$qlist= mysqli_query($sql_connection,"SELECT * FROM folders WHERE parentid='$id'");
if (mysqli_num_rows($qlist)>0) {
while($curitem = mysqli_fetch_assoc($qlist)) {
remrecurs($curitem['id']);
}
} mysqli_query($sql_connection,"DELETE FROM folders WHERE id='$id'");
}
remrecurs(1);
?>
【问题讨论】:
标签: php recursion sql-delete