周大胖子 发表于 2018-9-3 23:52:57

多条件查询技巧 与模糊查询

本帖最后由 周大胖子 于 2018-9-4 22:34 编辑

// 页码
      $page = $request->param('page');
      // 每页条数
      $limit = $request->param('limit');
      // limit 初始条数
      $binLimit = ($page-1)*$limit;

      // 搜索条件
      $gid = $request->param('gid');
      $status = $request->param('status');
      $truename = $request->param('truename');
      $username = $request->param('username');
      $lmsc=array();
      $gid && $lmsc['gid'] = ['=',$gid];
      $status && $lmsc['status'] = ['=',$status];
      $username && $lmsc['username'] = ['=',$username];
   
      
      // $gid && array_push($lmsc,'gid'=>['=',$gid]);这句话是错的
      // 拼凑条件
      $where = function ($query) use($gid,$status,$truename,$username,$lmsc){
            $query->where($lmsc);
      };

      // 获取总页数   总条数数/每页条数判断%在这里利用 ceil 运算符
      // $count =ceil(count(Admins::all())/$limit); 这是页码数 但是 layui返回的是条数
      $count = count(Admins::all($where));
      // 获取分页信息
      $list = Admins::order('gid asc,add_time desc')->limit($binLimit,$limit)->select($where);

      exit(json(0,'加载成功',$count, $list) );
依照老莫我目前粗浅的见识,多条件查询的原理 就是1.先接收条件;
2.判断是否有值;
3.搞个空数组用来存放搜索条件 where;
4.有值就存出来,存到这个数组里;

参考文献:https://blog.csdn.net/haibo0668/article/details/78203170







周大胖子 发表于 2018-9-4 22:35:47

模糊搜索
$truename && $lmsc['truename'] = ['like',"%".$truename."%"];
老莫同志在此粗略的认为,这就是在拼字符串 拼两个%或者 多个 %而,%号的位置 就是模糊所在的位置
页: [1]
查看完整版本: 多条件查询技巧 与模糊查询