thinkphp自带的分页 查询数据时怎么使用where条件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp自带的分页 查询数据时怎么使用where条件相关的知识,希望对你有一定的参考价值。

参考技术A

1.如果是POST方式查询,如何确保分页之后能够保持原先的查询条件呢,我们可以给分页类传入参数,方法是给分页类的parameter属性赋值

$count      = $User->where($map)->count();// 查询满足要求的总记录数
$Page       = new \\Think\\Page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数
//分页跳转的时候保证查询条件
foreach($map as $key=>$val) 
    $Page->parameter[$key]   =   urlencode($val);

$show       = $Page->show();// 分页显示输出

2.如果是GET查询方式,将查询条件传给where

$where=$_GET;
$User = M('User'); // 实例化User对象
// 进行分页数据查询 注意page方法的参数的前面部分是当前的页数使用 $_GET[p]获取
$list = $User->where($where)->order('create_time')->page($_GET['p'].',25')->select();
$this->assign('list',$list);// 赋值数据集
$count      = $User->where('status=1')->count();// 查询满足要求的总记录数
$Page       = new \\Think\\Page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数
$show       = $Page->show();// 分页显示输出
$this->assign('page',$show);// 赋值分页输出
$this->display(); // 输出模板

ThinkPHP分页实例

ThinkPHP分页实例

 技术分享 (2014-09-20 15:34:36)
 
很多人初学thinkphp时,不太熟悉thinkphp的分页使用方法,现在将自己整理的分页方法分享下,有需要的朋友可以看看。
 
控制器中的代码:
 
$db = M("cost");
$where = "查询条件";
$count = $db->where($where)->count();
$pagecount = 20;
$page = new \Think\Page($count , $pagecount);
$page->parameter = $row; //此处的row是数组,为了传递查询条件
$page->setConfig(‘first‘,‘首页‘);
$page->setConfig(‘prev‘,‘上一页‘);
$page->setConfig(‘next‘,‘下一页‘);
$page->setConfig(‘last‘,‘尾页‘);
$page->setConfig(‘theme‘,‘%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% 第 ‘.I(‘p‘,1).‘ 页/共 %TOTAL_PAGE% 页 ( ‘.$pagecount.‘ 条/页 共 %TOTAL_ROW% 条)‘);
$show = $page->show();
$list = $db->where($where)->order(‘id desc‘)->limit($page->firstRow.‘,‘.$page->listRows)->select();
$this->assign(‘list‘,$list);
$this->assign(‘page‘,$show);
$this->display();
 
模版中调用代码:
 
<**div class="pagelist">{$page}<**/div**>
//博客中会过滤DIV标签,请将上面一句话中的**去除,再使用
 
附带分页样式:
 
.pagelist{ text-align:center; background:#f1f1f1; padding:7px 0;}
.pagelist a{ margin:0 5px; border:#6185a2 solid 1px; display:inline-block; padding:2px 6px 1px; line-height:16px; background:#fff; color:#6185a2;}
.pagelist span{ margin:0 5px; border:#6185a2 solid 1px; display:inline-block; padding:2px 6px 1px; line-height:16px; color:#6185a2; color:#fff; background:#6185a2;}
 
显示效果如下:
 
技术分享
 

以上是关于thinkphp自带的分页 查询数据时怎么使用where条件的主要内容,如果未能解决你的问题,请参考以下文章

再看thinkphp5分页类使用

ThinkPHP分页实例

thinkPHP5开发智慧软文遇到的分页第二页不显示数据的问题

用thinkPHP可以实现数组的分页显示吗

Thinkphp6 自定义分页样式

ThinkPHP 怎么结合Bootstrap进行分页