要實現無限極分類,資料庫建表是關鍵。
表結構中至少需要三個字段,如果想避免遞迴循環,那麼需要四個字段。
1. id ,目前資料的唯一識別;
2. typename ,類型名稱;
3. parentid , 當前類型的上一層父類型的id;
4. path , 其中儲存目前類型的id和它所有父級類型的id。
這些id之間採用「-」分隔。
5. 當透過以下sql語句就可以實現,相同頂級類別下的資訊都在一起集中顯示。
select * from 表名where 條件order by path;
例如:
一個非常簡單清晰簡單的無極限分類範例,帶縮排效果,只需查詢一次資料表,然後遞歸遍歷結果集,就可以了,要在php中實現欄位縮排顯示可以參考一下。
$sql = 'select * from cat order by cat_id desc'; $list = $db->getAll($sql); $list = getLevelCat($list); function getLevelCat($catlist, $parent_id='0', $html=' ', $level='0'){ $arr = array(); foreach($catlist as $val){ if($val['parent_id']==$parent_id){ $val['html'] = str_repeat($html,$level); $val['level'] = $level; $arr[] = $val; $arr = array_merge($arr, getLevelCat($catlist, $val['cat_id'], $html, $level+1)); } } return $arr; }
短短幾行程式碼,比較清晰,也比較好用。
相關推薦:
以上是什麼是無限極分類的詳細內容。更多資訊請關注PHP中文網其他相關文章!