溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php分頁的實現(xiàn)方法有幾種

發(fā)布時間:2021-09-16 17:13:00 來源:億速云 閱讀:145 作者:chen 欄目:編程語言

本篇內(nèi)容主要講解“php分頁的實現(xiàn)方法有幾種”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“php分頁的實現(xiàn)方法有幾種”吧!

1、通過“mysql_query”等函數(shù)將sql查詢進行分頁。

2、使用ajax的方法實現(xiàn)分頁。

3、通過“function viewpage(p){...}”腳本實現(xiàn)分頁。

實例

<?php
  class pager {
 
    public $sql; //SQL查詢語句
 
    public $datanum; //查詢所有的數(shù)據(jù)總記錄數(shù)
 
    public $page_size; //每頁顯示記錄的條數(shù)
 
    protected $_errstr;
 
    protected $_conn;
 
    protected $_query_id;
 
 
 
    public function query($query)///這個函數(shù)有問題,暫時可以不用
 
    {
 
    $ret = false;
 
    if (!empty($query)) {
 
      if ($this->_conn === false || !is_resource($this->_conn)) {
 
       warningLog(__METHOD__ . ': query sql with no connection', true);
 
      return false;
 
      }
 
    $this->_query_id = @mysql_query($query, $this->_conn);
 
    if ($this->_query_id === false) {
 
    $this->_errstr = @mysql_error();
 
    $ret = false;
 
     } else {
 
    $this->_errstr = 'SUCCESS';
 
    $ret = $this->_query_id;
 
      }
 
    }
 
     $msg = ($ret === false) ? 'false' : strval($ret);
 
     debugLog(__METHOD__.": [$msg] returned for sql query [$query]");
 
    return $ret;
 
    }
 
function __construct($sql,$page_size) {
 
      $result = mysql_query($sql);
 
      $datanum = mysql_num_rows($result);
 
      $this->sql=$sql;
 
      $this->datanum=$datanum;
 
      $this->page_size=$page_size;
 
    }
 
 
 
    //當前頁數(shù)
 
    public function page_id() {
 
      if($_SERVER['QUERY_STRING'] == ""){
 
        return 1;
 
      }elseif(substr_count($_SERVER['QUERY_STRING'],"page_id=") == 0){
 
        return 1;
 
      }else{
 
        return intval(substr($_SERVER['QUERY_STRING'],8));
 
      }
 
    }
 
 
 
    //剩余url值
 
    public function url() {
 
      if($_SERVER['QUERY_STRING'] == ""){
 
        return "";
 
      }elseif(substr_count($_SERVER['QUERY_STRING'],"page_id=") == 0){
 
        return "&".$_SERVER['QUERY_STRING'];
 
      }else{
 
        return str_replace("page_id=".$this->page_id(),"",$_SERVER['QUERY_STRING']);
 
      }
 
    }
 
 
 
    //總頁數(shù)
 
    public function page_num() {
 
      if($this->datanum == 0){
 
        return 1;
 
      }else{
 
        return ceil($this->datanum/$this->page_size);
 
      }
 
    }
 
//數(shù)據(jù)庫查詢的偏移量
 
    public function start() {
 
      return ($this->page_id()-1)*$this->page_size;
 
    }
 
 
 
    //數(shù)據(jù)輸出
 
    public function sqlquery() {
 
      return $this->sql." limit ".$this->start().",".$this->page_size;
 
    }
 
 
 
    //獲取當前文件名
 
    private function php_self() {
 
      return $_SERVER['PHP_SELF'];
 
    }
 
 
 
    //上一頁
 
    private function pre_page() {
 
      if ($this->page_id() == 1) { //頁數(shù)等于1
 
        return "url().">上一頁 ";
 
      }elseif ($this->page_id() != 1) { //頁數(shù)不等于1
 
        return "上一頁 ";
 
      }
 
    }
 
 
 
    //顯示分頁
 
    private function display_page() {
 
      $display_page = "";
 
      if($this->page_num() <= 10){ //小于10頁
 
        for ($i=1;$i<=$this->page_num();$i++) //循環(huán)顯示出頁面
 
          $display_page .= "".$i." ";
 
          return $display_page;
 
      }elseif($this->page_num() > 10){ //大于10頁
 
        if($this->page_id() <= 6){
 
          for ($i=1;$i<=10;$i++) //循環(huán)顯示出頁面
 
            $display_page .= "".$i." ";
 
            return $display_page;
 
        }elseif(($this->page_id() > 6) && ($this->page_num()-$this->page_id() >= 4)){
 
          for ($i=$this->page_id()-5;$i<=$this->page_id()+4;$i++) //循環(huán)顯示出頁面
 
            $display_page .= "".$i." ";
 
 return $display_page;
 
        }elseif(($this->page_id() > 6) && ($this->page_num()-$this->page_id() < 4)){
 
          for ($i=$this->page_num()-9;$i<=$this->page_num();$i++) //循環(huán)顯示出頁面
 
            $display_page .= "".$i." ";
 
            return $display_page;
 
        }
 
      }
 
    }
 
 
 
    //下一頁
 
    private function next_page() {
 
      if ($this->page_id() < $this->page_num()) { //頁數(shù)小于總頁數(shù)
 
        return "下一頁 ";
 
      }elseif ($this->page_id() == $this->page_num()) { //頁數(shù)等于總頁數(shù)
 
        return "下一頁 ";
 
      }
 
    }
 
 
 
    // 設置分頁信息
 
    public function set_page_info() {
 
      $page_info = "共".$this->datanum."條 ";
 
      $page_info .= "url().">首頁 ";
 
      $page_info .= $this->pre_page();
 
      $page_info .= $this->display_page();
 
      $page_info .= $this->next_page();
 
      $page_info .= "尾頁 ";
 
      $page_info .= "第".$this->page_id()."/".$this->page_num()."頁";
 
      return $page_info;
 
    }
 
 
 
  }
 
?>

到此,相信大家對“php分頁的實現(xiàn)方法有幾種”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI