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. Darwin Streaming Server编译

    EasyDarwin是我们在Darwin Streaming Server的基础上进行开发和扩展的,Windows/Linux编译,包括64位编译补丁,我们都进行了整理和测试,后续还会不断进行迭代和扩 ...

  2. Hackerspace

    Hackerspace Software - HackerspaceWiki https://wiki.hackerspaces.org/Hackerspace_Software Hackerspac ...

  3. 超实用的 Nginx 极简教程,覆盖了常用场景(转)

    概述 安装与使用 安装 使用 nginx 配置实战 http 反向代理配置 负载均衡配置 网站有多个 webapp 的配置 https 反向代理配置 静态站点配置 搭建文件服务器 跨域解决方案 参考 ...

  4. Qt笔记之使用设计器自定义窗口标题栏

    1.在窗口显示之前,设置WindowFlags为FramelessWindowHint,以产生一个没有边界的窗口 例如 Widget::Widget(QWidget *parent) : QWidge ...

  5. ABAP抓取异常 try ,endtry.

    DATA: O_CX TYPE REF TO CX_ROOT. TRY . MOVE LS_UPLOAD-MENGE TO LS_OUTPUT-MENGE. CATCH CX_ROOT INTO O_ ...

  6. ABAP 动态内标排序

     动态内表怎样排序动态内表怎样排序 动态内表要排序时,因为不知道内表中的字段名字,所以不能直接用SORT table BY field1 field2... 可以使用下面的方法来实现:SORT tab ...

  7. LVS项目介绍

    LVS项目介绍 章文嵩 (wensong@linux-vs.org) 转自LVS官方参考资料 2002 年 3 月 本文介绍了Linux服务器集群系统--LVS(Linux Virtual Serve ...

  8. codeforces776D

    传送门 这题的意思就是原本有一个长度为n的01串,再给出m的长度为n的01串,要求你判定是否可以通过原串与m个串中的某些串xor使得原串到达一个状态.n,m小于1e5. 这题最初我发现不可做,因为这貌 ...

  9. BZOJ 1617 [Usaco2008 Mar]River Crossing渡河问题:dp

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1617 题意: Farmer John以及他的N(1 <= N <= 2,500 ...

  10. session机制大揭秘(结合cookie)

    session运行机制 当一个session开始时,servlet容器将创建一个httpSession对象,在HttpSession对象中可以存放客户状态信息. servlet容器为HttpSessi ...