关于无限极分类另一种操作方式

因为公司需求,需要做一个分销类的商城,需要用到无限极分类,刚开始查找了想用递归但是递归太消耗性能所以听从公司前辈的方法

    在用户表分别建立pid字段和pids字段

    每次新增用户的时候如果是通过推荐进来的,那么自身的pid就为推荐人的ID

    pids字段就为推荐人的pids加上","号再加上自己的id;

    如果不是通过推荐进来的那么就pid为0 pids为自身ID,也就是说不管哪个操作方法,在生成用户信息的时候需要先生成并且返回ID,然后修改他的pids参数这样才是一个完整的用户

    

    如何查询所属上级,利用php函数,字符串打断成为数组函数将pids字段内容打断,去掉自己的ID即为上级ID

exploed($string,",");

    这样就可以得到一个上级ID数组

    如何查询下级

Db::name('user')->where('id','<>',$input['id'] )
    ->where('pids', ['like',$input['id']],['like', '%,'.$input['id']],['like',$input['id'].',%'],['like','%,'.$input['id'].',%'],'or')
    ->where('pid',"<>",0)
    ->select();
我使用的是tp5.1的框架,如果你这面使用的其他框架可以借鉴一下哦


打赏

本文 暂无 评论

回复给

Top