有了PHP无限分类, 我们WEB平台设计开发中, 就无需再进行多次手动写代码, 多次建表, 效率低下, 使用也及其不方便, 这里为了PHP程序开发者的学习及工作使用方便, 给大家制作了完整的PHP无限分类分享及实例下载, 好了, 废话不多说, 直接说制作过程及使用方法.
1. 建设数据库表: sortclass 表名字段如下:
2. 文件结构如下:
3. 显示效果如下[index.php]:
调用fun.php文件中的函数get_Children_Class(), 代码如下:
/* 作用:显示类别信息 函数名:get_Children_Class() $parentid: 要显示此ID下及子孙所有类别信息 &$db: 连接数据库 &$arr: 存储的数组 $space: 间隔符号 $childResult: 直属子类 $level: 判断当前是第几级, 默认0,表示第一级 author: carl from: http://www.ncyteng.com */ function get_Children_Class($parentid=0,&$db,&$arr=array(),$space="",$level=0,$childResult=""){ /*第一次循环需要查询到一级类别信息, 递归时将直接获得判断有没有时查询到的信息*/ 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数组中*/ } } return $arr; }
4. 调用无限分类显示select下拉列表fun.php文件中的函数: select_trees()
显示效果如下:
代码如下:
/* 作用: 显示无限分类select下拉列表 $parentid: 下拉此父类下别的类别 $currentid: 当前选中的类别ID author: carl from: http://www.ncyteng.com */ 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. 所有调用的函数文件都放在 fun.php文件中
6. 下载完整实例[配置好数据库信息conndb()函数中数据库名, 用户名及密码], 即可直接运行