刚好用到了无限分类,把自己用到的跟大家分享一下。虽然很简单。。。
先来看表结构
字段 | 类型 | 备注 |
id | int | 自增id |
name | varchar | 分类名 |
pid | int | 父级id |
path | varchar | 路径 |
level | int | 级数 |
pid 0 表示顶级分类
path路径是根据pid,id的层级来存的,从数据查出数据的时候直接根据 path 进行 ASC 的排序就行了。
还有level的级数我是根据 path 字段里逗号的个数来计算的
下面是部分代码
$sql = "SELECT * FROM 这里是表名 ORDER BY path ASC";
$res = mysqli_quert('这里是数据库链接',$sql);
$cate = mysqli_fetch_all($res); 获取全部的数据
foreach( $cate as $k=>$v ){
$cate[$k]['name'] = str_repeat(' ',$v['level']*4).'|---'.$v['name'];
}
然后把$cate用<select> 标签输出
总结:这种分类方法没有使用递归函数,而是使用sql语句的 ASC 排序,直接就查出想要的数据
在理解上,比使用递归要好理解一点。