有了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()函数中数据库名, 用户名及密码], 即可直接运行
