1. 程式人生 > >PHP分頁功能使用類封裝實現

PHP分頁功能使用類封裝實現

//Page.class.php(分頁類封裝)------------------------------
<?php 
header("Content-Type:text/html;charset=utf-8");
class Page{
    public $total; //總記錄數
    public $page_size; //每頁顯示記錄數
    public $total_page; //總頁數
    public $cur_page;   //當前頁

    //定義構造方法,給成員屬性賦初值
    function __construct($total,$page_size){
        $this
->total = $total; $this->page_size = $page_size; $this->total_page = $this->getTotalPage(); $this->cur_page = $this->getCurPage(); } //定義出口程式,用於輸出分頁類的效果 function pages(){ echo "共".$this->total_page."頁&nbsp; 當前第".$this->cur_page."頁&nbsp;"
.$this->flist() .$this->listNum() .$this->llist(); } //定義成員方法,獲取總頁數 private function getTotalPage(){ //ceil(總記錄數/每頁顯示記錄數) $total_page = ceil($this->total/$this->page_size); return $total_page; } //獲取當前頁 private
function getCurPage(){ //http://localhost/Page.class.php $cur_page = isset($_GET['p'])?$_GET['p']:1; //$cur_page = 1 //$this->total_page = 0 //對當前頁的取值進行判斷 if($cur_page<1){ $cur_page=1; }else if($cur_page>$this->total_page&&$this->total_page!=0){ $cur_page=$this->total_page; } return $cur_page; } // 1 2 3 4 5 6 7 private function listNum(){ //定義佇列長度 $num = 3; //1 2 3 $lists = ""; for($i=$num;$i>=1;$i--){ $n = $this->cur_page-$i; if($n>=1){ $lists.="&nbsp;<a href='?p=".$n."'>$n</a>&nbsp;"; } } //連線上當前頁 $lists .= "&nbsp;".$this->cur_page."&nbsp;"; //5 6 7 for($i=1;$i<=$num;$i++){ //$n = 11+1=12 $n = $this->cur_page+$i; if($n<=$this->total_page){ $lists.="&nbsp;<a href='?p=".$n."'>$n</a>&nbsp;"; } } return $lists; } //首頁 上一頁 private function flist(){ //$prev = 1-1 = 0 //$prev = 2-1 = 1 $prev = $this->cur_page-1; $lists = ""; if($prev>=1){ $lists = "<a href='?p=1'>首頁</a>&nbsp; <a href='?p=".$prev."'>上一頁</a>"; } return $lists; } //下一頁 尾頁 private function llist(){ //$next = 10+1 = 11 //$next = 11+1 = 12 $next = $this->cur_page+1; $lists = ""; if($next<=$this->total_page){ $lists = "&nbsp;<a href='?p=".$next."'>下一頁</a>&nbsp; <a href='?p=".$this->total_page."'>尾頁</a>"; } return $lists; } } //總記錄數52 $total = 52; //每頁顯示的記錄數 $page_size = 5; $p = new Page($total,$page_size); $p->pages();