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