Explication détaillée de la définition et de l'utilisation de la classe de pagination PHP

墨辰丷
Libérer: 2023-03-26 22:58:01
original
1584 Les gens l'ont consulté

Cet article présente principalement la définition et l'utilisation de la classe de pagination implémentée en PHP. Il analyse les opérations courantes et les techniques d'utilisation spécifiques de la classe de pagination encapsulée en PHP sur la base d'exemples spécifiques. Les amis dans le besoin peuvent s'y référer

.

Les détails sont les suivants :

<?php
  class Page {
     private $total;   //总记录
     private $pagesize;  //每页显示多少条
     private $limit;     //limit
     private $page;      //当前页码
     private $pagenum;   //总页码
     private $url;      //地址
     private $bothnum;   //两边保持数字分页的量
   //构造方法初始化
   public function __construct($_total, $_pagesize) {
     $this->total = $_total ? $_total : 1;
     $this->pagesize = $_pagesize;
     $this->pagenum = ceil($this->total / $this->pagesize);
     $this->page = $this->setPage();
     $this->limit = "LIMIT ".($this->page-1)*$this->pagesize.",$this->pagesize";
     $this->url = $this->setUrl();
     $this->bothnum = 2;
   }
   //拦截器
   private function __get($_key) {
     return $this->$_key;
   }
   //获取当前页码
   private function setPage() {
     if (!empty($_GET[&#39;page&#39;])) {
        if ($_GET[&#39;page&#39;] > 0) {
          if ($_GET[&#39;page&#39;] > $this->pagenum) {
             return $this->pagenum;
          } else {
             return $_GET[&#39;page&#39;];
          }
        } else {
          return 1;
        }
     } else {
        return 1;
     }
   }
   //获取地址
   private function setUrl() {
     $_url = $_SERVER["REQUEST_URI"];
     $_par = parse_url($_url);
     if (isset($_par[&#39;query&#39;])) {
        parse_str($_par[&#39;query&#39;],$_query);
        unset($_query[&#39;page&#39;]);
        $_url = $_par[&#39;path&#39;].&#39;?&#39;.http_build_query($_query);
     }
     return $_url;
   }   //数字目录
   private function pageList() {
     for ($i=$this->bothnum;$i>=1;$i--) {
      $_page = $this->page-$i;
      if ($_page < 1) continue;
        $_pagelist .= &#39; <a href="&#39;.$this->url.&#39;&page=&#39;.$_page.&#39;" rel="external nofollow" rel="external nofollow" >&#39;.$_page.&#39;</a> &#39;;
     }
     $_pagelist .= &#39; <span class="me">&#39;.$this->page.&#39;</span> &#39;;
     for ($i=1;$i<=$this->bothnum;$i++) {
      $_page = $this->page+$i;
        if ($_page > $this->pagenum) break;
        $_pagelist .= &#39; <a href="&#39;.$this->url.&#39;&page=&#39;.$_page.&#39;" rel="external nofollow" rel="external nofollow" >&#39;.$_page.&#39;</a> &#39;;
     }
     return $_pagelist;
   }
   //首页
   private function first() {
     if ($this->page > $this->bothnum+1) {
        return &#39; <a href="&#39;.$this->url.&#39;" rel="external nofollow" >1</a> ...&#39;;
     }
   }
   //上一页
   private function prev() {
     if ($this->page == 1) {
        return &#39;<span class="disabled">上一页</span>&#39;;
     }
     return &#39; <a href="&#39;.$this->url.&#39;&page=&#39;.($this->page-1).&#39;" rel="external nofollow" >上一页</a> &#39;;
   }
   //下一页
   private function next() {
     if ($this->page == $this->pagenum) {
        return &#39;<span class="disabled">下一页</span>&#39;;
     }
     return &#39; <a href="&#39;.$this->url.&#39;&page=&#39;.($this->page+1).&#39;" rel="external nofollow" >下一页</a> &#39;;
   }
   //尾页
   private function last() {
     if ($this->pagenum - $this->page > $this->bothnum) {
        return &#39; ...<a href="&#39;.$this->url.&#39;&page=&#39;.$this->pagenum.&#39;" rel="external nofollow" >&#39;.$this->pagenum.&#39;</a> &#39;;
     }
   }
   //分页信息
   public function showpage() {
     $_page .= $this->first();
     $_page .= $this->pageList();
     $_page .= $this->last();
     $_page .= $this->prev();
     $_page .= $this->next();
     return $_page;
   }
 }
?>
Copier après la connexion

Le style de pagination est tel qu'indiqué ci-dessous :

Instructions d'utilisation :

<?php
  $_page = new Page($_total,$_pagesize);
  //其中 $_total 是数据集的总条数,$_pagesize 是每页显示的数量.
?>
Copier après la connexion

Recommandations associées :

Exemple détaillé de php Classe de pagination

TP5-chaque fonction de la classe de pagination

Bases de PHPClasse de paginationExplication détaillée du code

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!