-
- class PageModel {
- /**
- * 获取分页数组
- * @param unknown $page 当前页面数
- * @param unknown $goodsCount 商品总数
- * @param unknown $pageLength 每个页面展示页面数
- */
- public static function getPageArr($page, $goodsCount, $pageCountLength, $pageLength) {
- //页面总数
- $allPageCount = ceil($goodsCount / $pageLength);
- //如果页面总是比长度短,设定页面长度为页面总数
- if ($allPageCount <= $pageCountLength) {
- $allPageCount = ceil($goodsCount / $pageLength);
- }
- //总页面数一页展示完
- if ($allPageCount <= $pageCountLength) {
- for ($i = 0; $i < $allPageCount; $i ) {
- $arr[] = array('page' => $i 1);
- }
- return $arr;
- }
- //前后的长度
- $halfLength = floor($pageCountLength / 2);
- //因为太小,所以放原来位置,左边
- if ($page <= $halfLength) {
- $arr = array();
- for ($i = 0; $i < $pageCountLength; $i ) {
- $arr[] = array('page' => $i 1);
- }
- return $arr;
- }
- //太大,只取到边缘,超出也只取到边缘
- if ($page > $allPageCount - floor($pageCountLength / 2)) {
- for ($i = -$pageCountLength; $i < 0; $i ) {
- $arr[] = array('page' => $allPageCount $i 1);
- }
- return $arr;
- }
- //中间的数,把中间的取出来
- for ($i = -$halfLength; $i < $pageCountLength - $halfLength; $i ) {
- $arr[] = array('page' => $page $i);
- }
- return $arr;
- }
- }
复制代码
二、php分页类代码
代码:
-
-
class Helper_Page{
/** 总信息数 */
- var $infoCount;
- /** 总页数 */
- var $pageCount;
- /** 每页显示条数 */
- var $items;
- /** 当前页码 */
- var $pageNo;
- /** 查询的起始位置 */
- var $startPos;
- /** 下一页 */
- var $nextPageNo;
- /** 上一页 */
- var $prevPageNo;
function Helper_Page($infoCount, $items, $pageNo)
- {
- $this->infoCount = $infoCount;
- $this->items = $items;
- $this->pageNo = $pageNo;
- $this->pageCount = $this->GetPageCount();
- $this->AdjustPageNo();
- $this->startPos = $this->GetStartPos();
- }
- function AdjustPageNo()
- {
- if($this->pageNo == '' || $this->pageNo < 1)
- $this->pageNo = 1;
- if ($this->pageNo > $this->pageCount)
- $this->pageNo = $this->pageCount;
- }
- /**
- * 下一页
- */
- function GoToNextPage()
- {
- $nextPageNo = $this->pageNo 1;
- if ($nextPageNo > $this->pageCount)
- {
- $this->nextPageNo = $this->pageCount;
- return false;
- }
- $this->nextPageNo = $nextPageNo;
- return true;
- }
- /**
- * 上一页
- */
- function GotoPrevPage()
- {
- $prevPageNo = $this->pageNo - 1;
- if ($prevPageNo < 1)
- {
- $this->prevPageNo = 1;
- return false;
- }
- $this->prevPageNo = $prevPageNo;
- return true;
- }
- function GetPageCount()
- {
- return ceil($this->infoCount / $this->items);
- }
- function GetStartPos()
- {
- return ($this->pageNo - 1) * $this->items;
- }
- }
-
复制代码
|