thinkPHP模糊查询结果并分页

骑猪看日落 2022-02-24 13:30 537阅读 0赞
  1. public function sou(){
  2. $sou=I('sou');
  3. $type=I('type');
  4. if($type==1){
  5. $where['title']=array('like',"%".$sou."%"); //%表示搜索词前后可有内容存在
  6. }else{
  7. $where['username']=array('like',"%".$sou."%");
  8. }
  9. //分页
  10. $article = M('article');
  11. $count = $article->where($where)->count();
  12. $Page = new \Think\Page($count,10);
  13. $Page->setConfig('header', '<li class="rows">共<b>%TOTAL_ROW%</b>条记录 每页<b>%LIST_ROW%</b>条 第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</li>');
  14. $Page->setConfig('prev', '上一页');
  15. $Page->setConfig('next', '下一页');
  16. $Page->setConfig('last', '末页');
  17. $Page->setConfig('first', '首页'); //当有一定页数时才会显示首页和末页,页数过少不显示
  18. $Page->setConfig('theme', '%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%');
  19. $Page->lastSuffix = false; //最后一页不显示为总页数
  20. $show = $Page->show();
  21. // 进行分页数据查询 注意limit方法的参数要使用Page类的属性
  22. $list = $article->where($where)->join('article_type on article_type.id=article.typeid')->order('wid desc')->limit($Page->firstRow.','.$Page->listRows)->select();
  23. foreach($list as $key=>$val){ //替换函数修改搜索词在输出结果中的样式
  24. if($type==1){
  25. $list[$key]['title']=str_replace($sou,"<font color='red'>".$sou."</font>",$val['title']);
  26. }else{
  27. $list[$key]['username']=str_replace($sou,"<font color='red'>".$sou."</font>",$val['username']);
  28. }
  29. }
  30. $this->assign('page',$show);
  31. $this->assign('list',$list);
  32. $this->display('index/my'); //搜索结果在my页面显示
  33. }

注意:
html中搜索表单要用get方式提交,否则搜索结果点击下一页会显示未搜索状态

发表评论

表情:
评论列表 (有 0 条评论,537人围观)

还没有评论,来说两句吧...

相关阅读