gpt4 book ai didi

PHP/CodeIgniter 递归函数从自引用 SQL 表返回记录

转载 作者:行者123 更新时间:2023-11-30 00:28:00 27 4
gpt4 key购买 nike

这对我来说确实是一个挑战。我正在尝试构建一个小型应用程序,允许用户将文件组织到文件夹和子文件夹中。我使用 1 个 MySQL 表作为文件夹,其中包含一个字段 (parent_id) 来引用同一个表中的父文件夹。

我正在尝试创建一个函数,该函数返回一个包含特定folder_id的所有子文件夹的数组,下面是我的尝试,这只返回第一级子文件夹[此代码错误&我完全卡住了!!] .

private function child_folders($folder_id,$user_id,$folders = array()) {
$query = this->db->get_where("folders",array("parent_id"=>$folder_id,"user_id"=>$user_id));
if ($query->num_rows() > 0) {
foreach ($query->result_array() as $folder) {
array_push($folders, $folder);
}
return $this->child_folders($folder["folder_id"],$user_id,$folders);
} else {
return $folders;
}
}

MySQL 表

+-----------+---------+-------------+---------------------+-----------+---------+
| folder_id | name | description | datetime | parent_id | user_id |
+-----------+---------+-------------+---------------------+-----------+---------+
| 170 | 1 | NULL | 2014-03-28 19:42:02 | 0 | 164 |
| 171 | 1.1 | NULL | 2014-03-28 19:42:57 | 170 | 164 |
| 172 | 1.2 | NULL | 2014-03-28 19:43:07 | 170 | 164 |
| 173 | 1.3 | NULL | 2014-03-28 19:43:19 | 170 | 164 |
| 174 | 1.3.1 | NULL | 2014-03-28 19:44:13 | 173 | 164 |
| 175 | 1.3.2 | NULL | 2014-03-28 19:44:29 | 173 | 164 |
| 176 | 1.3.3 | NULL | 2014-03-28 19:45:06 | 173 | 164 |
| 177 | 1.3.3.1 | NULL | 2014-03-28 19:45:33 | 176 | 164 |
| 178 | 2 | NULL | 2014-03-28 20:55:33 | 0 | 164 |
| 179 | 2.1 | NULL | 2014-03-28 20:56:09 | 178 | 164 |
| 180 | 2.2 | NULL | 2014-03-28 20:58:03 | 178 | 164 |
| 181 | 2.3 | NULL | 2014-03-28 20:58:19 | 178 | 164 |
| 182 | 2.1.1 | NULL | 2014-03-28 20:59:40 | 179 | 164 |
| 183 | 2.1.2 | NULL | 2014-03-28 21:00:05 | 179 | 164 |
+-----------+---------+-------------+---------------------+-----------+---------+

最佳答案

尝试在你的函数行中做一些小的改变。

$folders = array();

private function child_folders($folder_id,$user_id,&$folders) {
$query = this->db->get_where("folders",array("parent_id"=>$folder_id,"user_id"=>$user_id));
if ($query->num_rows() > 0) {
foreach ($query->result_array() as $folder) {
array_push($folders, $folder);
}
return $this->child_folders($folder["folder_id"],$user_id,$folders);
} else {
return $folders;
}
}

关于PHP/CodeIgniter 递归函数从自引用 SQL 表返回记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22727224/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com