xizhongshui 发表于 2013-2-7 00:13:05

php分页

分页思想:1、请求页面传入分页代码PageUtil所需的三个参数(设定的每页记录数,查询记录总数,当前页面ID)
               2、PageUtil通过传入的数据计算分页所需的其它数据
               3、在数据呈现页面获取PageUtil所设定的基本数据,通过这些数据设定分页连接,通过DBTest操作数据库
以下仅讲述分页功能,数据库工具类不做描述。
<?phpclassPageUtil{//PageUtil.phppublic $pageSize;//每页记录数public $numItems;//记录总数public $currentPageID;//当前页面ID// public $queryStr;//sql语句// public $dbUtil;public $numPages;//页面总数public $nextPageID;//下一页IDpublic $prevPageID;//上一页IDpublic $isFistPage;//是否第一页   用以判断$nextPageID和$prevPageIDpublic $isEndPage;//是否第二页public $startPoint;//mysql记录起始点public $increment;//mysql数据增量function PageUtil($pageSize,$numItems,$currentPageID){$this->pageSize=$pageSize;$this->numItems=$numItems;$this->initPaper($currentPageID);}function initPaper($currentPageID){$this->numPages=$this->numItems%$this->pageSize>0 ? intval($this->numItems/$this->pageSize)+1:$this->numItems/$this->pageSize;//跳转功能设置 $currentPageID>$this->numPages时默认尾页,$currentPageID<=0时默认首页if($currentPageID>$this->numPages) $this->currentPageID=$this->numPages; else if($currentPageID<=0) $this->currentPageID=1;else $this->currentPageID=$currentPageID;//此处主要为跳转页设置currentPage<=0时,避免startPoint<0$this->startPoint=($this->currentPageID<=0) ? 0 : ($this->currentPageID-1)*$this->pageSize;//当记录为空避免increment<0if($this->numItems<=0) $this->increment=0;else $this->increment=($this->numItems-($this->currentPageID-1)*$this->pageSize)>$this->pageSize ? $this->pageSize : ($this->numItems-($this->currentPageID-1)*$this->pageSize);$this->prevPageID=$this->currentPageID-1;$this->nextPageID=$this->currentPageID+1;}}//echo "开始点".$pageUtil->startPoint."步长".$pageUtil->increment."总页数".$pageUtil->numPages."下一页".$pageUtil->nextPageID."上一页".$pageUtil->prevPageID."当前页".$pageUtil->currentPageID;?> 页面链接
<div class="pager">                    第 1 页 / 共 4 页    共 2 条     <!-- 首页连接控制 -->首页  <!-- 上一页连接控制 -->上一页  <!-- 下一页连接控制 -->下一页  <!-- 尾页页连接控制 -->尾页    页
页: [1]
查看完整版本: php分页