1. 程式人生 > >tp3.2下同時實現搜尋查詢和分頁效果

tp3.2下同時實現搜尋查詢和分頁效果

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();