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 相关文章推荐
ie6 动态缩略图不显示的原因
Jun 21 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
May 16 PHP
PHP curl_setopt()函数实例代码与参数分析
Jun 02 PHP
php explode函数实例代码
Feb 27 PHP
PHP序列化/对象注入漏洞分析
Apr 18 PHP
深入理解PHP中的count函数
May 31 PHP
浅谈PHP的反射机制
Dec 15 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
Mar 10 PHP
详细解读php的命名空间(二)
Feb 21 PHP
php中file_get_contents()函数用法实例
Feb 21 PHP
asp.net和php的区别点总结
Oct 10 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 15 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/12/06 PHP
php环境套包 dedeampz 伪静态设置示例
2014/03/26 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
2014/06/27 PHP
php图片添加文字水印实现代码
2016/03/15 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
javascript Array数组对象的扩展函数代码
2010/05/22 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
使用非html5实现js板连连看游戏示例代码
2013/09/22 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
全面解析Node.js 8 重要功能和修复
2017/06/02 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
React组件内事件传参实现tab切换的示例代码
2018/07/04 Javascript
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
2020/08/28 Javascript
Python最基本的输入输出详解
2015/04/25 Python
Java及python正则表达式详解
2017/12/27 Python
使用python将时间转换为指定的格式方法
2018/11/12 Python
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
python 实现任务管理清单案例
2020/04/25 Python
Pycharm github配置实现过程图解
2020/10/13 Python
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
中药学自荐信
2014/06/15 职场文书
小学生植树节活动总结
2014/07/04 职场文书
装修活动策划方案
2014/08/27 职场文书
2014工程部年度工作总结
2014/12/17 职场文书
高端收音机+蓝牙音箱,JBL TUNER FM带收音蓝牙音箱评测
2021/04/24 无线电
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python
Java Socket实现多人聊天系统
2021/07/15 Java/Android
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript