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---专题---数据分页的更多相关文章

  1. 微信小程序开发:学习笔记[9]——本地数据缓存

    微信小程序开发:学习笔记[9]——本地数据缓存 快速开始 说明 本地数据缓存是小程序存储在当前设备上硬盘上的数据,本地数据缓存有非常多的用途,我们可以利用本地数据缓存来存储用户在小程序上产生的操作,在 ...

  2. springmvc学习笔记(18)-json数据交互

    springmvc学习笔记(18)-json数据交互 标签: springmvc springmvc学习笔记18-json数据交互 springmvc进行json交互 环境准备 加入json转换的依赖 ...

  3. MyCat 学习笔记 第九篇.数据分片 之 数值分布

    1 应用场景 Mycat 自带了多套数据分片的机制,其实根据数值分片也是比较简单,其实这个和数据取摸是类似的实现. 优.缺点同上一篇 2 环境说明 参考  <MyCat 学习笔记>第六篇. ...

  4. Android学习笔记之JSON数据解析

    转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

  5. ThinkPHP3.2.3学习笔记5---模板(一)

    一.模板简介 此文中的学习笔记部分资料是来自于thinkphp官方文档,http://document.thinkphp.cn/manual_3_2.html#template 本章的内容主要讲述了如 ...

  6. 《C#并发编程经典实例》学习笔记—3.1 数据的并行处理

    问题 有一批数据,需要对每个元素进行相同的操作.该操作是计算密集型的,需要耗费一定的时间. 解决方案 常见的操作可以粗略分为 计算密集型操作 和 IO密集型操作.计算密集型操作主要是依赖于CPU计算, ...

  7. salesforce 零基础开发入门学习(八)数据分页简单制作

    本篇介绍通过使用VF自带标签和Apex实现简单的数据翻页功能. 代码上来之前首先简单介绍一下本篇用到的主要知识: 1.ApexPages命名空间 此命名空间下的类用于VF的控制. 主要的类包括但不限于 ...

  8. OSG学习:LOD、数据分页、动态调度

    LOD(level of detail):是指根据物体模型的结点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算.在OSG的场景结点组织结 ...

  9. ThinkPHP3.2.3学习笔记1---控制器

    ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的.最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布.ThinkPHP从诞生以来一 ...

随机推荐

  1. EasyDarwin EasyCamera支持海康摄像机接入了

    本文转自EasyDarwin开源团队成员Alex的博客:http://blog.csdn.net/cai6811376/article/details/52709816 EasyCamera默认使用海 ...

  2. EasyPusher手机直播编码推送之图像旋转90度后画面重复的问题

    本文转自EasyDarwin开源团队开发Holo的博客:http://blog.csdn.net/holo_easydarwin 最初在做EasyPusher手机直播的时候遇到过一个问题:手机竖屏推送 ...

  3. uva 10733 The Colored Cubes<polya定理>

    链接:http://uva.onlinejudge.org/external/107/10733.pdf 题意: N 种颜色可以涂成多少种立方体~ 思路: 使正六面体保持不变的运动群总共有: 1.不变 ...

  4. Hibernate的检索策略和优化

    一.检索策略概述 当我们实现了一对多或者多对多的映射后,在检索数据库时需要注意两个问题: 1.使用尽可能小的内存:当 Hibernate 从数据库中加载一个客户信息时, 如果同时加载所有关联这个客户的 ...

  5. 解析json的方式

    一.Javascrip操作json 原始方式: var str1 = '{ "name": "jacun", "addr": "b ...

  6. Express中的Ejs模板传值问题

    在Ejs模板传值过程中,route下的变量值通过res.sender()中的变量参数传给views, 这时在views中若该变量在javascript代码中使用,可直接使用该变量,不必使用<% ...

  7. Docker容器的数据卷(data volume),数据卷容器,数据卷的备份和还原。

    Docker容器的数据卷(data volume),数据卷容器,数据卷的备份和还原. 数据卷就是数据(一个文件或者文件夹). Docker的理念之一是将应用与其运行的环境打包,docker容器的生命周 ...

  8. vue组件挂载到全局方法

    在最近的项目中,使用了bootstrap-vue来开发,然而在实际的开发过程中却发现这个UI提供的组件并不能打到我们预期的效果,像alert.modal等组件每个页面引入就得重复引入,并不像eleme ...

  9. uni-app 创建的第一个应用

    本人微信公众号:前端修炼之路,欢迎关注 背景介绍 经过上一篇文章uni-app官方教程学习手记的学习之后,我就着手做这个项目了. 目前已经初步搭出了整体的框架,秉着取之于社会,回馈于社会的原则,我将这 ...

  10. Python pip源,解决安装慢的问题

    经常在使用Python的时候需要安装各种模块,而pip是很强大的模块安装工具,但是由于国外官方pypi经常被墙,导致不可用,所以我们最好是将自己使用的pip源更换一下,这样就能解决被墙导致的装不上库的 ...