PHP 分頁類

來源:互聯網
上載者:User
下面是我自己的分頁類,可適當的修改 [php] <?php   /**   * @name Pager's class   * @author Refer   * @copyright www.phpcq.com   * @version Alpha 1.0   * @todo 下拉式功能表分頁---From表單傳值...可以根據自己的情況(採用GET傳值)   *   */   class Pager{       /**       * startRow       *       * @var Int       */       public $startRow;       /**       * 頁面的總數       *       * @var Int       */       public $pageTotal;       /**       *翻頁值       *       * @var Int       */       public $offset;       /**       * 每頁所顯示記錄數       *       * @var Int       */       public $pageSize;       /**       * get參數       *       * @var Int       */       public $get;       /**       * post參數       *       * @var Int       */       public $post;       /**       * 建構函式--初始化翻頁類 (PS:^_^不錯的php開發學習交流群:256271784,驗證:gole,有興趣的話可以加入進來一起討論)      *       * @param Int $total       * @param Int $pageSize       */       public function __construct($total,$pageSize){           $this->get = (int)$_GET['startRow'];           $this->post = (int)$_POST['pageNums'];           $this->pageSize = $pageSize;           $this->pageTotal = ceil($total / $pageSize);           switch ($_GET['method']){               default:                   $this->startRow = 1;                   $this->offset = 0;               break;               case 'first':                   $this->first();               break;                   case 'previous':                   $this->previous();               break;                   case 'next':                   $this->next();               break;                   case 'last':                   $this->last();               break;               }       }        /**       * 首頁方法       *       */       public function first(){           $this->startRow = 1;           $this->offset = ($this->startRow - 1) * $this->pageSize;      }       /**       * 上一頁方法       *       */       public function previous(){           $this->startRow = $this->get - 1;           if ($this->startRow < 1) {               $this->startRow = 1;           }           $this->offset = ($this->startRow - 1) * $this->pageSize;      }       /**       * 下一頁方法       *       */       public function next(){           $this->startRow = $this->get + 1;           if ($this->startRow > $this->pageTotal) {               $this->startRow = $this->pageTotal;           }           $this->offset = ($this->startRow - 1) * $this->pageSize;      }       /**       * 最後頁方法       *       */       public function last(){           $this->startRow = $this->pageTotal;           $this->offset = ($this->startRow - 1) * $this->pageSize;      }       /**       * 下拉式功能表翻頁       *       * @return Int       */       public function numPages(){           if ($this->post) {               $pageNums = "<option>$this->post</option>";               $this->startRow = $this->post;               $this->offset = ($this->post - 1) * $this->pageSize;          }           for ($i = 1; $i <= $this->pageTotal;$i++){               if ($i != $this->post) {                   $pageNums .= "<option>$i</option>";               }           }           return $pageNums;       }       /**       * 當前是第幾頁       *       * @return Int       */       public function noncePage(){           if ($this->post) {               return $this->startRow = $this->post;           } else {               return $this->startRow = $this->startRow;           }       }   }     調用方法: [php]  $total = $total->total();//總記錄               $pageSize = 15;//每頁顯示的記錄               $pager = new Pager($total,$pageSize);               if ($pager->post){$startRow = $pager->noncePage();}               $startRow = $pager->startRow;               $pager->numPages();               $article->query("SELECT * FROM `categories` as c,`articles` as n WHERE c.id = n.pid                      ORDER BY n.id DESC LIMIT $pager->offset,$pageSize");               while ($article->fetchArray()) {                   $article->data['content'] = mb_substr(strip_tags($article->data['content']),0,40,'utf-8');                   $articleIndex[] = $article->data;                           }               $article->free();           } else {               header("location:?act=login");           }           $view->view->assign('startRow',$startRow);//caption           $view->view->assign('total',$total);//caption           $view->view->assign('pageNums',$pager->numPages());//pageNums           $view->view->assign('noncePage',$pager->noncePage());//pageNums           $view->view->assign('pageTotal',$pager->pageTotal);//pageTotal      模板頁面: [php]  <!--{if $pageTotal > 1}-->    <form action="" method="post">    <div id="projectpages" class="fontpage">    Pager:    <select name="pageNums" onchange="javascript:submit();" style="height:20px;">           <!--{$numPages}-->      </select>    <a href="?act=blog&method=first&startRow=<!--{$startRow}-->">First</a>     <a href="?act=blog&method=previous&startRow=<!--{$startRow}-->">Previous</a>     <a href="?act=blog&method=next&startRow=<!--{$startRow}-->">Next</a>    <a href="?act=blog&method=last&startRow=<!--{$startRow}-->">Last</a>    </div>    </form>    <!--{/if}-->       

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。