thinkPHP模糊查询结果并分页
public function sou(){
$sou=I('sou');
$type=I('type');
if($type==1){
$where['title']=array('like',"%".$sou."%"); //%表示搜索词前后可有内容存在
}else{
$where['username']=array('like',"%".$sou."%");
}
//分页
$article = M('article');
$count = $article->where($where)->count();
$Page = new \Think\Page($count,10);
$Page->setConfig('header', '<li class="rows">共<b>%TOTAL_ROW%</b>条记录 每页<b>%LIST_ROW%</b>条 第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</li>');
$Page->setConfig('prev', '上一页');
$Page->setConfig('next', '下一页');
$Page->setConfig('last', '末页');
$Page->setConfig('first', '首页'); //当有一定页数时才会显示首页和末页,页数过少不显示
$Page->setConfig('theme', '%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%');
$Page->lastSuffix = false; //最后一页不显示为总页数
$show = $Page->show();
// 进行分页数据查询 注意limit方法的参数要使用Page类的属性
$list = $article->where($where)->join('article_type on article_type.id=article.typeid')->order('wid desc')->limit($Page->firstRow.','.$Page->listRows)->select();
foreach($list as $key=>$val){ //替换函数修改搜索词在输出结果中的样式
if($type==1){
$list[$key]['title']=str_replace($sou,"<font color='red'>".$sou."</font>",$val['title']);
}else{
$list[$key]['username']=str_replace($sou,"<font color='red'>".$sou."</font>",$val['username']);
}
}
$this->assign('page',$show);
$this->assign('list',$list);
$this->display('index/my'); //搜索结果在my页面显示
}
注意:
html中搜索表单要用get方式提交,否则搜索结果点击下一页会显示未搜索状态
还没有评论,来说两句吧...