tp3.2下同時實現搜尋查詢和分頁效果
阿新 • • 發佈:2019-01-11
1.thinkphp下後臺博文管理頁面:
2.可以看到url位址列顯示後面的引數:其中包括分類和標題的搜尋條件,但是如果文章過多需要分頁的時候,如何在保證搜尋的同時又不影響分頁效果呢?先看一下正常搜尋程式碼:
//接收前臺查詢條件,賦值給$map變數
$cateId=I('get.cate_id',0);
$title=I('get.title','');
if($cateId){
$map['a.cate_id']=array('eq',$cateId);
}
//strip剔除空格搜尋
if(!empty(strip_tags($title))){
$map['a.title']=array('like',"%$title%");
}
//將get過來的ID和title搜尋值賦到模板上進行if判斷,在搜尋框上保留搜尋類名
$this->assign('cateId',$cateId);
$this->assign('title',$title);
3.將搜尋程式碼代入分頁和文章查詢條件:
//查詢滿足要求的總記錄數(注:如果兩表中的cate_id不一致則會出現有分頁效果但是資料卻顯示不出來)
$count=M('article a')->where($map)->count();
//自定義單頁顯示頁數
$size=2;
//自定義進入index頁面時預設顯示第一頁
$p=I('get.p',1);
$Page=new \Think\Page($count,$size);
/*post查詢分頁跳轉的時候thinkphp3.2下有bug不能使用,以後分頁條件查詢用get
foreach($map as $key=>$val) {
$Page->parameter[$key] = urlencode($val);
}*/
//此處page()條件中就是在頁面url地址中傳入的p引數,因為代入了$map查詢條件,所以分頁也可以正常使用
$artList=M('article a')->join("blog_category AS c ON a.cate_id=c.cate_id")->where($map)->page($p.','.$size)->order('art_id DESC')->select();