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

PHP分頁類代碼

編輯:關於PHP編程

PHP分頁類代碼


今天為大家獻上一段代碼,這是一段php分頁代碼:

//創建分頁類
class Page {
    private $_all_num;                                                            //數據總個數
    private $_page_size;                                                        //每頁顯示幾條數據
    private $_page;                                                                //當前頁面
    private $_all_page;                                                            //總頁碼
    private $_url;                                                                //頁面地址
    private $_limit;                                                            //數據庫查詢語句
    private $_sign;                                                                //地址符號
    
    //攔截器
    public function __get($_key) {
        return $this->$_key;
    }
    
    public function __construct($_all_num,$_page_size) {
        $this->_all_num = $_all_num;
        $this->_page_size = $_page_size;
        $this->_all_page = ceil($this->_all_num / $this->_page_size);
        $this->_page = $this->setPage();
        $this->_url = $this->setUrl();
        $this->_limit = 'LIMIT '.($this->_page * $this->_page_size - $this->_page_size).','.$this->_page_size;
    }
    
    //獲取當前頁碼
    private function setPage() {
        if (!empty($_GET['page']) && $_GET['page'] > 0) {
            if ($_GET['page'] <= $this->_all_page) {
                return ceil($_GET['page']);
            } else {
                return $this->_all_page;
            }
        } else {
            return 1;
        }
    }
    
    //獲取地址
    private function setUrl() {
        $_url = $_SERVER['REQUEST_URI'];    
        if (!empty($_url)) {
            $_par_url = parse_url($_url);
            if (isset($_par_url['query'])) {
                parse_str($_par_url['query'],$_arr);
                if (isset($_arr['page'])) {
                    unset($_arr['page']);
                }
                if (!empty($_arr)) {
                    $_http = http_build_query($_arr);
                    $_end_url = $_par_url['path'] . '?' . $_http;
                    $this->_sign = '&';
                } else {
                    $_end_url = $_par_url['path'];
                    $this->_sign = '?';
                }
            } else {
                $_end_url = $_par_url['path'];
                $this->_sign = '?';
            }
        }
        return $_end_url;
    }
    
    //顯示分頁
    public function numPage() {
        $_num = '';
        //前面
        for ($i=1; $i<$this->_page; $i++) {
            if ($i<1) continue;
            $_num .= "".$i."";
        }
        //自己
        $_num .= "".$this->_page."";
        //後面
        for ($i=$this->_page+1; $i<=$this->_all_page; $i++) {
            if ($i>$this->_all_page) continue;
            $_num .= "".$i."";
        }
        return $_num;
    }
}
?>

大家可以將上面一段代碼復制到文本編輯器中這樣看的會舒服一點!下面講一下具體步驟:

1、創建一個分頁類:class Page {};
2、獲取需要顯示數據的個數,並且記錄在Page類中,這裡數據的個數通過數據去獲取就不詳細說了!然後設置每頁顯示數據的條數!
3、獲取當前頁面地址!
    這段代碼大概意思就是當你的地址跟著?時,那麼點擊分頁就用&page=;當你的地址後面沒有後綴或者只有?page=,那麼點擊分頁就用?page=
\
4、獲取當前頁碼
    這裡的頁碼必須是整數,所以可以用ceil這個函數,還要注意用戶的惡意修改地址!
\
4、做分頁元素,這裡只是做一個簡單的數字分頁,更復雜用戶體驗更好的,大家可以自行擴展!
\
5、設置數據庫庫的查詢條數,也就是LIMIT;舉個例子:比如我現在有10條數據,設置每頁顯示5條數據,那麼
    當用戶點擊第一頁時,LIMIT 0,5
    當用戶點擊第二頁時,LIMIT 5,5
6、這段代碼的調用:
    $_page = new Page(10,5);
    $_page->page();
    上面的10是總的數據個數,5是你想要每頁顯示數據的個數,$_page->page()就是頁面的分頁,直接echo出來就行啦,注意你還得將Page類中的$_limit調用出來放到數據庫查詢語句中,這樣基本的php分頁就出來啦!

此文章屬於王業樓的個人博客原創,若要轉載請注明出處:王業樓的個人博客 www.ly89.cn

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