thinkphp 数据分页
通常在数据查询后都会对数据集进行分页操作,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(当前页)。
thinkphp 数据分页的更多相关文章
- ThinkPHP数据分页Page.class.php
获取分页类 ThinkPHP提供了数据分页的扩展类库Page,能够在http://www.thinkphp.cn/extend/241.html下载,或者下载官方的完整扩展包(http://www.t ...
- ThinkPHP快速实现数据分页(前端/后端分离)
数据 分页 可能是web 编程里最常用到的功能之一.thinkphp 实现分页功能十分简洁.只需要定义 几个参数 就能搞定.当然,扩展也是十分方便的. 让我们现在就开始thinkphp的分页实现吧. ...
- 数据分页 THINKPHP3.2 分页 三种分页方法
数据分页 复制本页链接 opensns 通常在数据查询后都会对数据集进行分页操作,ThinkPHP也提供了分页类来对数据分页提供支持. 下面是数据分页的两种示例. 第一种:利用Page类和limit方 ...
- js 从一个json拼接成另一个json,并做json数据分页table展示
先给数据: //原始json数据json = [{"id":"1","aid":"013","performa ...
- mysq大数据分页
mysql limit大数据量分页优化方法 Mysql的优化是非常重要的.其他最常用也最需要优化的就是limit.Mysql的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急 ...
- Sql Server 数据分页
http://www.cnblogs.com/qqlin/archive/2012/11/01/2745161.html 1.引言 在列表查询时由于数据量非常多,一次性查出来会非常慢,就算一次查出来了 ...
- Oracle、MySql、SQLServer数据分页查询
看过此博文后Oracle.MySql.SQLServer 数据分页查询,在根据公司的RegionRes表格做出了 SQLserver的分页查询语句: 别名.字段 FROM( SELECT row_nu ...
- 知方可补不足~SQL2005使用ROW_NUMBER() OVER()进行数据分页
回到目录 数据分页是这个经常说的东西,无论在WEBForm还是WinForm中它都会被单独拿出来,或者是公用组件,或者是公用类库,反正对于数据分页这个东西,总是我们关注的一个话题,但事实上,数据分页归 ...
- salesforce 零基础开发入门学习(八)数据分页简单制作
本篇介绍通过使用VF自带标签和Apex实现简单的数据翻页功能. 代码上来之前首先简单介绍一下本篇用到的主要知识: 1.ApexPages命名空间 此命名空间下的类用于VF的控制. 主要的类包括但不限于 ...
随机推荐
- ios执行失去焦点,不执行点击事件
原因:由于JavaScript为单线程,同一时间只能执行处理一个事件.“blur优先于click执行”.而在本示例中,由于blur处理程序,会将对下拉框展示区隐藏,所以导致其后续click事件并不会执 ...
- redux 基础
antd 的使用 1.安装npm install antd --save 2.引入到项目中 import 'antd/dist/antd.css'; // or 'antd/dist/antd.les ...
- 使用appium1.4在android8.0真机上测试程序时报错command failed shell "ps 'uiautomator'"的解决方式
appium1.4,运行自动化脚本时提示 org.openqa.selenium.SessionNotCreatedException: A new session could not be crea ...
- 代理端口转发工具rinetd
转载: https://my.oschina.net/wuweixiang/blog/2983280 rinetd 前言 iptables 的功能当然强大,但理解与设置却有点抽象,便通过google认 ...
- python操作pymysql
#_author:来童星#date:2019/12/19import pymysql#1.打开数据库连接db=pymysql.connect('localhost','root','root','te ...
- linux IPC的FIFO
FIFO命名管道原型: #include <sys/stat.h> int mkfifo(const char *path, mode_t mode); int mkfifoat(int ...
- mysql之分组
1.创建分组 group by SELECT vend_id, COUNT(*) AS num_prods FROM productsGROUP BY vend_id; 在where字句之后,在ord ...
- 关于“Unknown or unsupported command 'install'”问题解决的小结
经常需要在COMMAND命令中安装第三方库,有时会碰到“Unknown or unsupported command 'install'”这种报错. 刚开始时,以为是环境变量里面没有配置:PYTHON ...
- (8)centos7 登录与关机
关机重启 shutdown -h now #立刻关机 shutdown -h 1 #一分钟后关机 shutdown -h 17:00 #指定时间关机(如果当前时间超过17:00,则会转到明天的17:0 ...
- java8的正确使用姿势
ackage com.expgiga.Java8; import java.util.ArrayList; import java.util.Arrays; import java.util.List ...