gpt4 book ai didi

php - 使用mysql显示文件夹结构

转载 作者:行者123 更新时间:2023-11-28 23:20:18 25 4
gpt4 key购买 nike

我需要使用 mysql 查询列出文件夹名称和子文件夹名称。子文件夹的深度未知。即一个父文件夹可能有n级子文件夹。请引用下面的示例文件夹结构:

.
├── PHP
│ ├── Developer
│ │ ├── Junior
│ │ └── Senior
│ └── Tester
├── Java
│ └── Test Engineer
└── Android

文件夹结构可能不同..

我的 table 是这样的

enter image description here

我想像 parent 和他们的 child 一样在选择框中加载文件夹名称。

  PHP
Developer
Junior
Senior
Tester
Java
Test Engineer
Android

我尝试了什么?

$fOption="";
$parentFolders = $db->query("SELECT * FROM jp_emp_folder WHERE parent_id='0' AND emp_id='".$empId."'");
while($parentRows = $db->fetch_array($parentFolders)){
$fOption .= "<option value='".$parentRows['id']."'>".$parentRows['folder_name']."</option>";
$child = $db->query("SELECT * FROM jp_emp_folder WHERE parent_id='".$parentRows['id']."' AND emp_id='".$empId."'");
while($childRows = $db->fetch_array($child)){
$fOption .= "<option value='".$childRows['id']."'>".$childRows['folder_name']."</option>";
}
}
echo $fOption;

我知道这只给出了 2 级文件夹结构。但是我有n级。我怎样才能做到这一点?请建议..

最佳答案

您可以使用这种方法来构建层次结构。

第 1 步:在 PHP 中构建 $data

$data = array();
$results = $db->query("SELECT * FROM jp_emp_folder WHERE emp_id=" . (int)$empId);
while($rows = $db->fetch_array($results)) {
$data[$row['id']] = $rows;
}

第二步:递归读取$data构建层级

function readData($parent_id = 0) {
global $data; // I'm just lazy, avoid using "global"
foreach($data as $id => $item) {
if($parent_id > 0 && $item['parent_id'] != $parent_id) {
continue;
}
echo '<option value="' . $id . '">' . $item['folder_name'] . '</option>' . PHP_EOL;
unset($data[$id]); // Remove echo-ed contents
if($item['parent_id'] > 0) {
readData((int)$id);
}
}
}

readData(); // Start reading $data

将输出以下内容:

<option value="1">PHP</option>
<option value="2">Java</option>
<option value="3">Android</option>
<option value="4">Test Engineer</option>
<option value="5">Developer</option>
<option value="7">Junior</option>
<option value="6">Tester</option>

关于php - 使用mysql显示文件夹结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41999874/

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