##一、實驗目的
1、掌握ThinkPHP5.0用戶查詢與分類查詢功能。
##二、實驗內容
1、掌握ThinkPHP5.0用戶查詢功能。
2、掌握ThinkPHP5.0用戶分類查詢功能。
##三、實驗步驟及過程
上一個實驗實現了單頁瀏覽、刪除、增加和修改用戶功能,但復雜的查詢功能并沒有實現,以下我們將介紹如何實現這些功能。
1、查詢與分類查詢功能界面
用戶登錄后,進入(http://127.0.0.1/noneCms/public/index.php/weixin/index/index.html)主界面,單擊公眾號用戶,則進入了微信用戶信息管理界面,包括用戶信息瀏覽、刪除、增加、修改、查詢與分類查詢幾個功能,如圖所示。

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,公眾號名稱為“豆豆咨詢”。掃描以下二維碼,關注“豆豆咨詢”。

技術QQ群名稱:豆豆咨詢,群號:625686304
微信公眾號名稱:豆豆咨詢,微信公眾號:douAsk
彩蛋號:1210(在公眾號里輸入彩蛋號即可得到源碼)。