看板 PHP 關於我們 聯絡資訊
請益各位大大一個我百思不解的問題,非常感謝。 資料表格式_folder 是分類表 有 ID,ParentId(父類別)......(剩下的Title Content之 類的) 資料表格式_article 是主表 有 ID,ParentId(父類別),FolderId(關聯_folder表的 ID).......(剩下的Title Content之類的) 我是想要做一個商品型錄(無限層)利用上面兩張表 ID ParentId Title 1←0 服飾鞋包 ↘ 2←1 女鞋 ↓ 3↓1 男鞋 ↘ 4←2 高跟鞋 ↓ 5↓3 皮鞋 ↘ 6 4 涼鞋 我的問題是如何把上面資料表的資料排列成樹狀圖 例如 服飾鞋包 |--女鞋 | |--高跟鞋 | |--涼鞋 | |--男鞋 |-皮鞋 XXXXXXX |--OO | |--XX | | 下面是我寫的CODE 但是只能顯示出 服飾鞋包 |--女鞋 |--高跟鞋 |--涼鞋 XXXXXXX |--OOOO |--AAAA |--BBBB 以上面的例子來說 少了一層男鞋的(就是第二層的無限分類) 也就是說我只有第一層可無限分類,後面的就不能分類了。 在這裡先感謝各位大大無私的分享~真的非常感謝 $bind = $this->_bind; $folder_all = $this->_db->query(" SELECT * FROM `/*prefix*//*module*/_folder` WHERE Status = 'open' ",$bind)->fetchAll(); $p = 0; for($j=0;$j<count($folder_all);$j++){ if($folder_all[$j][ParentId]==0){ $id = $folder_all[$j][Id]; $k = 0; $a[$p][$k][Title] = $folder_all[$j][Title]; $a[$p][$k][ParentId] = $folder_all[$j][ParentId]; $a[$p][$k][Id] = $folder_all[$j][Id]; $k = 1; for($i=0;$i<count($folder_all);$i++){ if($folder_all[$i][ParentId]==$id){ $a[$p][$k][Title] = $folder_all[$i][Title]; $a[$p][$k][ParentId] = $folder_all[$i][ParentId]; $a[$p][$k][Id] = $folder_all[$i][Id]; $id = $folder_all[$i][Id]; $i=-1; $k++; } } } $p++; } $this->assign['folder_all'] = $a; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.180.65
bobju:這問題應該是出在於這寫法無法任何一個節點有幾個子節點. 01/25 16:43
bobju: ^判斷 01/25 16:43
bobju:本板文章代碼 #1B66Np8v (8841) 的方法可供參考. 01/25 16:47
luo74128:感謝bobju大大 01/27 12:22