当前位置:K88软件开发文章中心网站服务器框架ThinkPHP → 文章内容

数据分页

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-26 15:35:17

由 AdairSweet 创建, 最后一次修改 2016-02-24 通常在数据查询后都会对数据集进行分页操作,ThinkPHP也提供了分页类来对数据分页提供支持。 下面是数据分页的两种示例。利用Page类和limit方法分页$User = M('User'); // 实例化User对象$count = $User->where('status=1')->count();// 查询满足要求的总记录数$Page = new \Think\Page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数(25)$show = $Page->show();// 分页显示输出// 进行分页数据查询 注意limit方法的参数要使用Page类的属性$list = $User->where('status=1')->order('create_time')->limit($Page->firstRow.','.$Page->listRows)->select();$this->assign('list',$list);// 赋值数据集$this->assign('page',$show);// 赋值分页输出$this->display(); // 输出模板分页类和page方法的实现分页$User = M('User'); // 实例化User对象// 进行分页数据查询 注意page方法的参数的前面部分是当前的页数使用 $_GET[p]获取$list = $User->where('status=1')->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(); // 输出模板带入查询条件如果是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();// 分页显示输出分页样式定制我们可以对输出的分页样式进行定制,分页类Page提供了一个setConfig方法来修改默认的一些设置。例如:$Page->setConfig('header','个会员');setConfig方法支持的属性包括:属性描述header头部描述信息,默认值 “共 %TOTAL_ROW% 条记录”prev上一页描述信息,默认值 “<<”next下一页描述信息,默认值 “>>”first第一页描述信息,默认值 “1...”last最后一页描述信息,默认值 “...%TOTAL_PAGE%”theme分页主题描述信息,包括了上面所有元素的组合 ,设置该属性可以改变分页的各个单元的显示位置,默认值是 "%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%"其中,显示位置的对应的关系为:位置说明%FIRST%表示第一页的链接显示%UP_PAGE%表示上一页的链接显示%LINK_PAGE%表示分页的链接显示%DOWN_PAGE%表示下一页的链接显示%END%表示最后一页的链接显示除了改变显示信息外,你还可以使用样式来定义分页的显示效果。 这些样式class包括:first(第一页)、prev(上一页)、next(下一页)、end(最后一页)、num(其他页的数字)、current(当前页)。

数据分页