作者luo74128 (小貓)
看板PHP
標題[請益]商品型錄分層問題
時間Mon Jan 25 13:15:30 2010
請益各位大大一個我百思不解的問題,非常感謝。
資料表格式_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
→ luo74128:感謝bobju大大 01/27 12:22