我需要使用mysql查询列出文件夹名称和子文件夹名称。子文件夹的深度未知。这是一个父文件夹可能有n级子文件夹。请参考下面的示例文件夹药结构:使用mysql显示文件夹结构
-PHP
-Developer
-Junior
-Senior
-Tester
-Java
-Test Engineer
-Android
的文件夹结构可能会有所不同..
我的表看起来像
我想在选择要加载的文件夹名称像父母和他们的孩子的方式。
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级。我该如何实现这个目标?请建议..
关键字:* *递归。不建议使用这种方法来构建层次结构,因为DB的开销很大。如果可能的话,您可以将整个结构转换为多维数组。通过递归读取数组,您可以轻松高效地构建树。 – Raptor
递归编程可能是一个很好的解决方案。 https://en.wikipedia.org/wiki/Recursion_(computer_science) – Twinfriends