fleaphp常用方法分页之Pager使用方法 |
本文标签:fleaphp,分页 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, ); |