ThinkPHP3.2.3学习笔记6---专题---数据分页
http://document.thinkphp.cn/manual_3_2.html#data_page
thinkphp3.2.3中分类的功能调用的文件$THINKPHP_HOME/ThinkPHP/Library/Think/Page.class.php,这个文件只有150行左右,不复杂,比较容易看懂,方便自己修改,也可以在此基础上进行新功能的扩展。
控制器
$THINKPHP_HOME/Application/Home/Controller/PageController.class.php
<?php
namespace Home\Controller;
use Think\Controller;
class PageController extends Controller{
//注意,这里只能用D('User') 不能用 M('User'),因为这里是需要实例化某个具体的模型类User
protected $userObj; public function getUserObj() {
return $this->userObj = D('page');
} //第一种:利用Page类和limit方法进行分页
public function pageLimit(){
$this->userObj = $this->getUserObj(); $data = $this->userObj->pageLimit(); $list = $data['list'];
$page = $data['page']; //var_dump($data); $this->assign('list', $list);// 赋值数据集
$this->assign('page', $page);// 赋值分页输出
$this->display('Page:page'); // 输出模板
} //第一种:利用Page类和page方法进行分页
public function pagePage(){
$this->userObj = $this->getUserObj(); $data = $this->userObj->pagePage(); $list = $data['list'];
$page = $data['page']; //var_dump($data); $this->assign('list', $list);// 赋值数据集
$this->assign('page', $page);// 赋值分页输出
$this->display('Page:page'); // 输出模板
}
}
?>
模型$THINKPHP_HOME/Application/Home/Model/PageModel.class.php
<?php
namespace Home\Model;
use Think\Model;
class PageModel extends Model {
protected $trueTableName = '99game_user';
protected $userObj; public function getUserObj() {
return $this->userObj = M('User', '99game_');
} //第一种:利用Page类和limit方法进行分页
public function pageLimit() {
$User = $this->getUserObj();
$count = $User->where('level=1')->count();// 查询满足要求的总记录数
$Page = new \Think\Page($count, 3);// 实例化分页类 传入总记录数和每页显示的记录数(3) //配置theme是用来设置分页要显示哪些数据项的,比如%HEADER%表示“共XX条记录”
$Page->setConfig('theme', '%HEADER% %NOW_PAGE%/%TOTAL_PAGE% %FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%');
$show = $Page->show();// 分页显示输出 // 进行分页数据查询 注意limit方法的参数要使用Page类的属性
$list = $User->where('level=1')->order('user_id desc')->limit($Page->firstRow.','.$Page->listRows)->select();
echo "sql: " . $User->_sql() . "\n"; return array('list' => $list, 'page' => $show);
} //第一种:利用Page类和page方法进行分页
public function pagePage() {
$User = $this->getUserObj(); // 实例化User对象
// 进行分页数据查询 注意page方法的参数的前面部分是当前的页数使用 $_GET[p]获取
$count = $User->where('level=1')->count();// 查询满足要求的总记录数
$Page = new \Think\Page($count, 3);// 实例化分页类 传入总记录数和每页显示的记录数
$show = $Page->show();// 分页显示输出 $list = $User->where('level=1')->order('user_id desc')->page($_GET['p'].',3')->select(); return array('list' => $list, 'page' => $show);
}
}
?>
模板$THINKPHP_HOME/Application/Home/View/Page/page.html
数据列表<br />
<volist name="list" id="data" key="k">
{$k} : {$key} : {$data.user_id} : {$data.email} : {$data.token}<br />
</volist> 分页数据<br />
{$page}
在浏览器中分别输入以下两个网址进行测试,可以输出正确的结果
http://localhost:81/research/thinkphp_3.2.3_full/index.php/Home/Page/pageLimit
http://localhost:81/research/thinkphp_3.2.3_full/index.php/Home/Page/pagePage
延伸阅读:
http://www.baidu.com/s?wd=thinkphp3.2.3%20分页
http://www.sogou.com/web?query=thinkphp3.2.3%20分页
https://www.so.com/index.php?q=thinkphp3.2.3%20分页
ThinkPHP3.2.3学习笔记6---专题---数据分页的更多相关文章
- 微信小程序开发:学习笔记[9]——本地数据缓存
微信小程序开发:学习笔记[9]——本地数据缓存 快速开始 说明 本地数据缓存是小程序存储在当前设备上硬盘上的数据,本地数据缓存有非常多的用途,我们可以利用本地数据缓存来存储用户在小程序上产生的操作,在 ...
- springmvc学习笔记(18)-json数据交互
springmvc学习笔记(18)-json数据交互 标签: springmvc springmvc学习笔记18-json数据交互 springmvc进行json交互 环境准备 加入json转换的依赖 ...
- MyCat 学习笔记 第九篇.数据分片 之 数值分布
1 应用场景 Mycat 自带了多套数据分片的机制,其实根据数值分片也是比较简单,其实这个和数据取摸是类似的实现. 优.缺点同上一篇 2 环境说明 参考 <MyCat 学习笔记>第六篇. ...
- Android学习笔记之JSON数据解析
转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...
- ThinkPHP3.2.3学习笔记5---模板(一)
一.模板简介 此文中的学习笔记部分资料是来自于thinkphp官方文档,http://document.thinkphp.cn/manual_3_2.html#template 本章的内容主要讲述了如 ...
- 《C#并发编程经典实例》学习笔记—3.1 数据的并行处理
问题 有一批数据,需要对每个元素进行相同的操作.该操作是计算密集型的,需要耗费一定的时间. 解决方案 常见的操作可以粗略分为 计算密集型操作 和 IO密集型操作.计算密集型操作主要是依赖于CPU计算, ...
- salesforce 零基础开发入门学习(八)数据分页简单制作
本篇介绍通过使用VF自带标签和Apex实现简单的数据翻页功能. 代码上来之前首先简单介绍一下本篇用到的主要知识: 1.ApexPages命名空间 此命名空间下的类用于VF的控制. 主要的类包括但不限于 ...
- OSG学习:LOD、数据分页、动态调度
LOD(level of detail):是指根据物体模型的结点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算.在OSG的场景结点组织结 ...
- ThinkPHP3.2.3学习笔记1---控制器
ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的.最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布.ThinkPHP从诞生以来一 ...
随机推荐
- 【windows phone】CollectionViewSource的妙用
在windows phone中绑定集合数据的时候,有时候需要分层数据,通常需要以主从试图形式显示.通常的方法是将第二个ListBox(主视图)的数据源绑定到第一个ListBox (从视图)的Selec ...
- js中变量的声明
大家都知道js中变量的声明是要提前的,下面有4个样例: 1.if(!"t" in window){ var t = 1; } alert(t);答案是undefine ...
- EasyDarwin开源流媒体服务器提供的TS切片/HLS直播打包库
EasyHLS Github:https://github.com/EasyDarwin/EasyHLS EasyHLS是什么? EasyHLS是EasyDarwin开源流媒体社区开发的一款HLS打 ...
- difference between http get and post
1 用get的地方 在浏览器中输入url直接访问资源时,用get.get是通过url传参的. 2 用post的地方 2.1 url长度超限时 post是将参数放在http body中的,因此对参数的长 ...
- Jquery AJAX如何使用Promise/Deferred实现顺序执行?
有的时候有我有N个AJAX请求,第下个请求可能要依赖上个请求的返回值, 可以用 $.ajax("test1.php").then(function(data) { // data ...
- JVM无法启动,jps无法运行,提示内存不足
原因:系统设置中有设置了不允许over commit so,无法分配足够内存 /etc/sysctl.conf vm.overcommit_memory=1 或者sysctl vm.overco ...
- h5的缓存机制
H5的缓存,大概有localstorage.sessionstorage.cookie和manifest. 一.LocalStorage LocalStorage是永久性的本地缓存,存储在客户端的浏览 ...
- bleve搜索引擎是支持基于field搜索的
Query String Query The query language query allows humans to describe complex queries using a simple ...
- C#继承与多态
继承:在程序中,如果一个类A:类B,这种机制就是继承. 子类可以继承父类的所有内容(成员)吗? 解析: 1.私有成员(属性和方法) 2.构造函数 3.final修饰过的方法,子类不能进行重写 //SE ...
- 关于Spring Security的笔记
1.web.xml配置文件 加载Spring Security,将DelegatingFilterProxy配置在DispatcherServlet之前. <filter> <fil ...