当前位置: 首页 > 工具软件 > FleaPHP > 使用案例 >

php pager,fleaphp常用方法分页之Pager使用方法

袁阿苏
2023-12-01

fleaphp常用方法分页之Pager使用方法,需要的朋友可以参考下。

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,

);

 类似资料: