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 相关文章推荐
Dedecms V3.1 生成HTML速度的优化办法
Mar 18 PHP
php中使用Imagick实现图像直方图的实现代码
Aug 30 PHP
php数组声明、遍历、数组全局变量使用小结
Jun 05 PHP
php利用单例模式实现日志处理类库
Feb 10 PHP
将php数组输出html表格的方法
Feb 24 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
Sep 10 PHP
PHP动态规划解决0-1背包问题实例分析
Mar 23 PHP
PHP使用内置dir类实现目录遍历删除
Mar 31 PHP
php快速查找数据库中恶意代码的方法
Apr 01 PHP
Cygwin中安装PHP方法步骤
Jul 04 PHP
PHP面向对象多态性实现方法简单示例
Sep 27 PHP
WHOOPS PHP调试库的使用
Sep 29 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的ASP防火墙
2006/10/09 PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
2010/06/03 PHP
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
php Hex RGB颜色值互换的使用
2013/05/10 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
2013/06/25 PHP
PHP使用mysqldump命令导出数据库
2015/04/14 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
2016/12/02 PHP
PHP7 list() 函数修改
2021/03/09 PHP
javascript 实现父窗口引用弹出窗口的值的脚本
2007/08/07 Javascript
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
AngularJS入门教程之XHR和依赖注入详解
2016/08/18 Javascript
浅谈Angular 中何时取消订阅
2017/11/22 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
2018/04/18 jQuery
解决vue.js this.$router.push无效的问题
2018/09/03 Javascript
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
Python中的对象,方法,类,实例,函数用法分析
2015/01/15 Python
Python最火、R极具潜力 2017机器学习调查报告
2017/12/11 Python
Python中多个数组行合并及列合并的方法总结
2018/04/12 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
Python分支语句与循环语句应用实例分析
2019/05/07 Python
python实现复制大量文件功能
2019/08/31 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
Django权限控制的使用
2021/01/07 Python
关于探究python中sys.argv时遇到的问题详解
2021/02/23 Python
个人贷款担保书
2014/04/01 职场文书
自习课吵闹检讨书范文
2014/09/26 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
员工家属慰问信
2015/03/24 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
MySQL 存储过程的优缺点分析
2021/05/20 MySQL
Oracle以逗号分隔的字符串拆分为多行数据实例详解
2021/07/16 Oracle
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android