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后台验证码总提示错误的解决方法
Mar 21 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
Feb 17 PHP
基于php中使用excel的简单介绍
Aug 02 PHP
thinkphp数据查询和遍历数组实例
Nov 28 PHP
ajax+php控制所有后台函数调用
Jul 15 PHP
再Docker中架设完整的WordPress站点全攻略
Jul 29 PHP
php实现的微信红包算法分析(非官方)
Sep 25 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
Dec 17 PHP
PHP中利用sleep函数实现定时执行功能实现代码
Aug 25 PHP
PHP上传图片、删除图片简单实例
Nov 12 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
Apr 04 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
WIN98下Apache1.3.14+PHP4.0.4的安装
2006/10/09 PHP
php中常用编辑器推荐
2007/01/02 PHP
PHP has encountered an Access Violation at 7C94BD02解决方法
2009/08/24 PHP
jquery鼠标停止移动事件
2013/12/21 Javascript
Javascript Memoizer浅析
2014/10/16 Javascript
JavaScript数组前面插入元素的方法
2015/04/06 Javascript
JavaScript编程中的Promise使用大全
2015/07/28 Javascript
AngularJS基础 ng-open 指令简单实例
2016/08/02 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
2016/11/25 Javascript
纯JS焦点图特效实例(可一个页面多用)
2016/12/07 Javascript
JS实现的表头列头固定页面功能示例
2017/01/10 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
[46:12]完美世界DOTA2联赛循环赛 DM vs Matador BO2第一场 11.04
2020/11/04 DOTA
python采集百度百科的方法
2015/06/05 Python
使用Python的Django框架结合jQuery实现AJAX购物车页面
2016/04/11 Python
python环形单链表的约瑟夫问题详解
2018/09/27 Python
基于python实现KNN分类算法
2020/04/23 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
5分钟弄清楚html5的drag and drop(小结)
2019/04/10 HTML / CSS
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
教师读书活动总结
2014/05/07 职场文书
销售提升方案
2014/06/07 职场文书
党的群众路线教育实践活动总结
2014/10/30 职场文书
保管员岗位职责
2015/02/14 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书
vue中 this.$set的使用详解
2021/11/17 Vue.js