有了PHP無限分類, 我們WEB平臺設(shè)計開發(fā)中, 就無需再進行多次手動寫代碼, 多次建表, 效率低下, 使用也及其不方便, 這里為了PHP程序開發(fā)者的學(xué)習(xí)及工作使用方便, 給大家制作了完整的PHP無限分類分享及實例下載, 好了, 廢話不多說, 直接說制作過程及使用方法.
1. 建設(shè)數(shù)據(jù)庫表: sortclass 表名字段如下:
2. 文件結(jié)構(gòu)如下:
3. 顯示效果如下[index.php]:
調(diào)用fun.php文件中的函數(shù)get_Children_Class(), 代碼如下:
/* 作用:顯示類別信息 函數(shù)名:get_Children_Class() $parentid: 要顯示此ID下及子孫所有類別信息 &$db: 連接數(shù)據(jù)庫 &$arr: 存儲的數(shù)組 $space: 間隔符號 $childResult: 直屬子類 $level: 判斷當(dāng)前是第幾級, 默認0,表示第一級 author: carl from: http://tjegd.cn */ function get_Children_Class($parentid=0,&$db,&$arr=array(),$space="",$level=0,$childResult=""){ /*第一次循環(huán)需要查詢到一級類別信息, 遞歸時將直接獲得判斷有沒有時查詢到的信息*/ if(empty($childResult)){ $sql = "SELECT * FROM sortclass WHERE parentid=$parentid order by orders asc"; $childResult = query($db,$sql,true); } if($childResult){ foreach($childResult as $row){ if($level==0)$row["space"]=$space; elseif($level==1)$row["space"]=$space=" |---->"; else $row["space"] = $space; $arr[] = $row; /*查詢子類*/ $parentid = $row["id"]; $sql = "SELECT * FROM sortclass WHERE parentid=$parentid order by orders asc"; $childResult = query($db,$sql,true); if($childResult) { get_Children_Class($parentid,$db,$arr," |".$space,$level+1,$childResult); } /*有子類就添加到$arr數(shù)組中*/ } } return $arr; }
4. 調(diào)用無限分類顯示select下拉列表fun.php文件中的函數(shù): select_trees()
顯示效果如下:
代碼如下:
/* 作用: 顯示無限分類select下拉列表 $parentid: 下拉此父類下別的類別 $currentid: 當(dāng)前選中的類別ID author: carl from: http://tjegd.cn */ function select_trees($parentid=0,&$db,$currentid=0,$selectname="sortid"){ $str = ""; $result = get_Children_Class($parentid,$db); if($result){ $str .= "<select name='$selectname'>\n"; foreach($result as $row){ $checked = ($currentid==$row["id"])?"selected":""; if($checked) $str .= " <option value='".$row["id"]."' style='background-color: #E20A0A; color:#fff' $checked>".$row["space"].$row["sortname"]."</option> \n"; else $str .= " <option value='".$row["id"]."'>".$row["space"].$row["sortname"]."</option> \n"; } $str .= "</select>\n"; } return $str; }
5. 所有調(diào)用的函數(shù)文件都放在 fun.php文件中
6. 下載完整實例[配置好數(shù)據(jù)庫信息conndb()函數(shù)中數(shù)據(jù)庫名, 用戶名及密碼], 即可直接運行