##一、实验目的   1、掌握ThinkPHP5.0用户查询与分类查询功能。 ##二、实验内容   1、掌握ThinkPHP5.0用户查询功能。   2、掌握ThinkPHP5.0用户分类查询功能。 ##三、实验步骤及过程   上一个实验实现了单页浏览、删除、增加和修改用户功能,但复杂的查询功能并没有实现,以下我们将介绍如何实现这些功能。   1、查询与分类查询功能界面   用户登录后,进入(http://127.0.0.1/noneCms/public/index.php/weixin/index/index.html)主界面,单击公众号用户,则进入了微信用户信息管理界面,包括用户信息浏览、删除、增加、修改、查询与分类查询几个功能,如图所示。   ![](https://box.kancloud.cn/51cfb6fe4cfeb007598291611967012b_557x326.jpg)   2、关键代码解析   我们将详细解析查询与分类查询功能实现的关键步骤,包括查询功能与后台之间的交互;分类查询与后台的交互。   1)查询功能与后台的交互   用户单击查询按钮,通过以下代码调用users控制器的index方法,以get方法向后台传递数据,前台通过input的id得到用户输入,代码如下。 ~~~ $(".enq").click(function(){ var name= $("#name").val(); var url = "{:url('users/index')}" + "?name=" + name; window.location.href = url; }); ~~~   2)分类查询功能与后台的交互   用户单击分类查询按钮,通过以下代码调用users控制器的index方法,同样以get方法向后台传递数据,前台通过input的id得到用户输入,包括查询类别和输入内容,代码如下。 ~~~ //分类查询 $(".enqc").click(function(){ var enqcategory= $("#enqCategory").val(); var enqCategory= $("#inpCon").val(); var url = "{:url('users/index')}" + "?enqName=" + enqcategory + "&enqCategory=" + enqCategory; window.location.href = url; }) ~~~   另外,当用户单击分类查询之后,需要保留用户的分类类别,我们采用$("#enqCategory").val('{$name}');代码得到用户的查询分类信息,设置id为enqCategory的select控件内容,$name从后台传递过来的变量。   3)Users.php文件查询与分类查询功能   Users.php是users控制器文件,其中index()方法显示用户管理页面,查询包括单条件查询和多条件查询,代码如下: ~~~ public function index() { $id = input('param.id',0); $userName = input('param.name',''); $enqName= input('param.enqName',''); $enqCategory= input('param.enqCategory',''); $this->assign('name', 'name'); //exit(json_encode(['status' => 0, 'msg' => 'id:'.$id.' name:'.$userName.' enqName:'.$enqName.' enqCategory:'.$enqCategory, 'url' => ''])); if($id > 0){ $list = Db::name('user')->field('username,logintime,id,loginip,email,islock,phone')->where('id','eq',$id)->where('islock','neq',3)->select(); $this->assign('list', $list); return $this->fetch(); } else if($userName != '') { $list = Db::name('user')->field('username,logintime,id,loginip,email,islock,phone')->where('username','like','%'.$userName.'%')->where('islock','neq',3)->select(); $this->assign('list', $list); return $this->fetch(); } else if($enqCategory != '') { $this->assign('name', $enqName); if($enqName == 'name'){ $list = Db::name('user')->field('username,logintime,id,loginip,email,islock,phone')->where('username','like','%'.$enqCategory.'%')->where('islock','neq',3)->select(); $this->assign('list', $list); return $this->fetch(); } else if($enqName == 'phone'){ $list = Db::name('user')->field('username,logintime,id,loginip,email,islock,phone')->where('phone','like','%'.$enqCategory.'%')->where('islock','neq',3)->select(); $this->assign('list', $list); return $this->fetch(); } } else { $list = Db::name('user')->field('username,logintime,id,loginip,email,islock,phone')->where('islock','neq',3)->select(); $this->assign('list', $list); return $this->fetch(); } } ~~~ ##四、技术服务   1、如果有疑问或者需要帮助,请加入QQ群(群名称:豆豆咨询,群号:625686304);或者公众号douAsk,公众号名称为“豆豆咨询”。扫描以下二维码,关注“豆豆咨询”。 ![](https://box.kancloud.cn/541e0b698446c38ba398b183c361fe0d_430x430.jpg) 技术QQ群名称:豆豆咨询,群号:625686304 微信公众号名称:豆豆咨询,微信公众号:douAsk 彩蛋号:1210(在公众号里输入彩蛋号即可得到源码)。