我需要使用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