fleaphp常用方法分页之Pager使用方法


Posted in PHP onApril 23, 2011

Pager 分页函数

/** 
* 构造函数 
* 
* 如果 $source 参数是一个 TableDataGateway 对象,则 FLEA_Helper_Pager 会调用 
* 该 TDG 对象的 findCount() 和 findAll() 来确定记录总数并返回记录集。 
* 
* 如果 $source 参数是一个字符串,则假定为 SQL 语句。这时,FLEA_Helper_Pager 
* 不会自动调用计算各项分页参数。必须通过 setCount() 方法来设置作为分页计算 
* 基础的记录总数。 
* 
* 同时,如果 $source 参数为一个字符串,则不需要 $conditions 和 $sortby 参数。 
* 而且可以通过 setDBO() 方法设置要使用的数据库访问对象。否则 FLEA_Helper_Pager 
* 将尝试获取一个默认的数据库访问对象。 
* 
* @param TableDataGateway|string $source 
* @param int $currentPage 
* @param int $pageSize 
* @param mixed $conditions 
* @param string $sortby 
* @param int $basePageIndex 
* 
* @return FLEA_Helper_Pager 
*/ 
function FLEA_Helper_Pager(& $source, $currentPage, $pageSize = 20, $conditions = null, $sortby = null, $basePageIndex = 0) 
{ 
$this->_basePageIndex = $basePageIndex; 
$this->_currentPage = $this->currentPage = $currentPage; 
$this->pageSize = $pageSize; 
if (is_object($source)) { 
$this->source =& $source; 
$this->_conditions = $conditions; 
$this->_sortby = $sortby; 
$this->totalCount = $this->count = (int)$this->source->findCount($conditions); 
$this->computingPage(); 
} elseif (!empty($source)) { 
$this->source = $source; 
$sql = "SELECT COUNT(*) FROM ( $source ) as _count_table"; 
$this->dbo =& FLEA::getDBO(); 
$this->totalCount = $this->count = (int)$this->dbo->getOne($sql); 
$this->computingPage(); 
} 
}

Pager 参数说明
$source 数据库操作类
$currentPage 当前页
$pageSize 每页显示记录数量
$conditions 查询条件
$sortby 排序方式
$basePageIndex 页码基数
Pager 使用示例(实例)
$dirname = dirname(__FILE__); 
define('APP_DIR', $dirname . '/APP'); 
define('NO_LEGACY_FLEAPHP', true); 
require($dirname.'/FleaPHP/FLEA/FLEA.php'); 
//设置缓存目录 
FLEA::setAppInf('internalCacheDir',$dirname.'/_Cache'); 
//链接数据库 
$dsn = array( 
'driver' => 'mysql', 
'host' => 'localhost', 
'login' => 'root', 
'password' => '', 
'database' => 'wordpress' 
); 
FLEA::setAppInf('dbDSN',$dsn); 
//读取wp_posts的内容 
FLEA::loadClass('FLEA_Db_TableDataGateway'); 
FLEA::loadClass('FLEA_Helper_Pager'); 
//FLEA::loadHelper('pager'); 
class Teble_Class extends FLEA_Db_TableDataGateway { 
var $tableName = 'wp_posts'; 
var $primaryKey = 'ID'; 
} 
$tableposts =& new Teble_Class(); 
$pager =& new FLEA_Helper_Pager($tableposts,2,5); 
$page = $pager->getPagerData(); 
print_r($page);

getPagerData 返回一些数据供调用
$data = array( 
'pageSize' => $this->pageSize, 
'totalCount' => $this->totalCount, 
'count' => $this->count, 
'pageCount' => $this->pageCount, 
'firstPage' => $this->firstPage, 
'firstPageNumber' => $this->firstPageNumber, 
'lastPage' => $this->lastPage, 
'lastPageNumber' => $this->lastPageNumber, 
'prevPage' => $this->prevPage, 
'prevPageNumber' => $this->prevPageNumber, 
'nextPage' => $this->nextPage, 
'nextPageNumber' => $this->nextPageNumber, 
'currentPage' => $this->currentPage, 
'currentPageNumber' => $this->currentPageNumber, 
);
PHP 相关文章推荐
Content-type 的说明
Oct 09 PHP
使用PHP 5.0创建图形的巧妙方法
Oct 12 PHP
php网站地图生成类示例
Jan 13 PHP
ThinkPHP CURD方法之limit方法详解
Jun 18 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
Nov 24 PHP
php字符串替换函数substr_replace()用法实例
Mar 17 PHP
详解PHP的Yii框架中日志的相关配置及使用
Dec 08 PHP
Zend Framework创建自己的动作助手详解
Mar 05 PHP
php编程中echo用逗号和用点号连接的区别
Mar 26 PHP
PHP实现的简单适配器模式示例
Jun 22 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
Feb 10 PHP
PHP PDOStatement::fetch讲解
Jan 31 PHP
PHP中限制IP段访问、禁止IP提交表单的代码
Apr 23 #PHP
PHP计划任务、定时执行任务的实现代码
Apr 23 #PHP
PHP导入Excel到MySQL的方法
Apr 23 #PHP
在php和MySql中计算时间差的方法
Apr 22 #PHP
PHP遍历二维数组的代码
Apr 22 #PHP
PHP中调用ASP.NET的WebService的代码
Apr 22 #PHP
PHP中输出转义JavaScript代码的实现代码
Apr 22 #PHP
You might like
PHP截取中文字符串的问题
2006/07/12 PHP
php中实现记住密码下次自动登录的例子
2014/11/06 PHP
php获取系统变量方法小结
2015/05/29 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
疯狂Jquery第一天(Jquery学习笔记)
2012/05/11 Javascript
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
js 判断浏览器使用的语言示例代码
2014/03/22 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
与Math.pow 相反的函数使用介绍
2014/08/04 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
JavaScript面向对象之私有静态变量实例分析
2016/01/14 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
用js实现简单算法的实例代码
2016/09/24 Javascript
JavaScript之promise_动力节点Java学院整理
2017/07/03 Javascript
vue生成随机验证码的示例代码
2017/09/29 Javascript
vue路由传参三种基本方式详解
2019/12/09 Javascript
vue+Element中table表格实现可编辑(select下拉框)
2020/05/21 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
[48:44]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS HGT
2014/05/22 DOTA
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
python leetcode 字符串相乘实例详解
2018/09/03 Python
python实现五子棋人机对战游戏
2020/03/25 Python
基于Python绘制个人足迹地图
2020/06/01 Python
Numpy 多维数据数组的实现
2020/06/18 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
会计应届生的自荐信
2013/12/13 职场文书
建筑设计专业求职自我评价
2014/03/02 职场文书
企业党建工作汇报材料
2014/08/19 职场文书
2016年共产党员公开承诺书
2016/03/24 职场文书
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server