php搭配mysql_php配合mysql实现无限极分类效果

php实现分类不难,实现无限分类其实也不难,但是将无限分类显示出来,并且显示的有层次感就需要使用一些技巧了;我相信很多程序员都想过使用递归去实现,但是大家都知道递归性能不太好,如果数据量大的话,会占用大量内存,并且耗费时间也比较多;所以很早就有大神想出了排序的方法:

1、首先是数据表的设计,看如下图片:

3d093715853eca7c816a37d6b7cd822d.png

其实设计这个表的关键之处就是full_path字段。

2、插入数据时full_path字段的处理

full_path其实就是当前数据的路径加上父级路径的结合,如下图:

146a649605dfc9d95363395b5282cc81.png

3、php服务端获取数据:

$list=M()->table("menu")->where("status=1")->order("ORDER BY full_path asc")->select();

print_r($list);

上面代码就是通过full_path的排序,将数据按父子级排列出来,至于如何将数据显示出来是有明显等级的,那就是通过将path或者full_path使用

foreach ($list as $val) {

$level=explode(',', $val['path']);

$levelstr=str_repeat("  ",count($level)-1).'|--';

echo $levelstr.$val['name'].'
';

}

上面代码有一个可能大家不太常使用的函数,就是str_repeat函数,这个函数的作用就是可以将字符按照自己设定的数量进行重复显示,上面的示例就是将空格按照等级数重复显示,从而达到缩进效果。

分类显示效果如下:

|--网站管理

|--站点信息

|--站点分类

|--菜单管理

|--菜单列表

|--用户管理

|--会员列表

|--管理员列表

|--文章管理

|--文章列表

|--文章分类

|--系统配置

|--站点信息

|--采集管理

|--采集列表

上面的介绍只是无限分类的简易实现方法,具体的实现得您按照自己得需求去做改进。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值