程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php完美分頁類程序

php完美分頁類程序

編輯:關於PHP編程

本文章介紹這個php分頁類支持下一頁,下頁,首頁等所有分頁要有的盡有哦,有需要的同學可以參考一下下哈。  代碼如下 復制代碼

<?php
/************************************************************************************
* 完美分頁類,可以自定義分頁(比高胖老師的完美哈,O(∩_∩)O哈哈~)                               *
************************************************************************************
* 版權所有 (C) 2011-2012 北海情書-一個程序員博客,並保留所有權利。                 *
                                 *
* **********************************************************************************
* $Author: 北海情書 ([email protected]) $                                           *
* $Date: 2011-07-18 10:00:00 $                                                     *
* **********************************************************************************/

    class Page{
   
        private $total;         //數據總條數
        private $listRows;      //每頁顯示條數
        private $limit;         //限制條數
        private $pageNum;       //總頁數
        private $page;          //當前頁
        private $config=array('head'=>"條記錄", "prev"=>"上一頁", "next"=>"下一頁", "first"=>"首頁", "last"=>"末頁");
     
        /**
         * 構造方法,可以設置分頁類的屬性
         * @param        int        $total                計算分頁的總記錄數
         * @param        int        $listRows        可選的,默認每頁需要顯示的記錄數
         *
         */
        public function __construct($total,$listRows=10){
        
                $this->total=$total;
                $this->listRows=$listRows;
                $this->pageNum=ceil($this->total/$this->listRows);   //獲取總頁數
                if($_GET['page']>$this->pageNum){      //防止過界      
                       $_GET['page']=$this->pageNum;
                }
                $this->page=!empty($_GET['page'])?$_GET['page']:"1"; //當前頁
                $this->limit=$this->setPage();         //分頁公式
        }

        public function __get($args){
              
                if($args=='limit'){            //過濾非法請求
                        return $this->limit;
                }
                return null;
        }

        //計算分頁公式
        private function setPage(){

           return "limit ".($this->page-1)*$this->listRows.",".$this->listRows;
       
        }

        //上一頁
        private function prev(){
                return "<a href='?page=".($this->page-1)."'>".$this->config['prev']."</a>";
        }
      
        //下一頁
        private function next(){
                return "<a href='?page=".($this->page+1)."'>".$this->config['next']."</a>";
        }

        //首頁
        private function first(){
                return "<a href='?page=1'>".$this->config['first']."</a>";
        }

        //尾頁
        private function last(){
                return "<a href='?page=".($this->pageNum)."'>".$this->config['last']."</a>";
        }

    

        //分頁列表
       
        private function pagelist(){

                $lists.='';
                for($i=1;$i<$this->pageNum;$i++){

                    $lists.="<a href='?page=".$i."'>$i</a>&nbsp;&nbsp;";
                }
                return $lists;
        }


        public function fpage($display=array(1,2,3,4,5)){
       
             $html[1]= "共有".$this->total.$this->config['head'];       
             $html[2]= $this->prev();  //上一頁
             $html[3]= $this->next();  //下一頁
             $html[4]= $this->first(); //首頁
             $html[5]= $this->last();  //尾頁
             $html[6]= $this->pagelist();  //列表
             $fpage='';
             foreach($display as $index){
                       
                  $fpage.=$html[$index];
             }
             return $fpage;
        }
   
   
    }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved