废话不多说,直接看代码吧 Pager.class.php 代码如下 class Pager{ /** *int总页数 **/ protected $pageTotal ; /** **/ protected $previous ; /** **/ protected $next ; /** *int中间页起始序号 **/ protected $startPage ; /** *int中间页终止序号 **/ pr
废话不多说,直接看代码吧
Pager.class.php 代码如下
- class Pager {
- /**
- *int 总页数
- * */
- protected $pageTotal;
- /**
- * */
- protected $previous;
- /**
- * */
- protected $next;
- /**
- *int 中间页起始序号
- * */
- protected $startPage;
- /**
- *int 中间页终止序号
- * */
- protected $endPage;
- /**
- *int 记录总数
- * */
- protected $recorbTotal;
- /**
- *int 每页显示记录数
- * */
- protected $pageSize;
- /**
- *int 当前显示页
- * */
- protected $currentPage;
- /**
- *string 基url地址
- * */
- protected $baseUri;
- /**
- * @return string 获取基url地址
- */
- public function getBaseUri() {
- return $this->baseUri;
- }
- /**
- * @return int 获取当前显示页
- */
- public function getCurrentPage() {
- return $this->currentPage;
- }
- /**
- * @return int 获取每页显示记录数
- */
- public function getPageSize() {
- return $this->pageSize;
- }
- /**
- * @return int 获取记录总数
- */
- public function getRecorbTotal() {
- return $this->recorbTotal;
- }
- /**
- * @param string $baseUri 设置基url地址
- */
- public function setBaseUri($baseUri) {
- $this->baseUri = $baseUri;
- }
- /**
- * @param int $currentPage 设置当前显示页
- */
- public function setCurrentPage($currentPage) {
- $this->currentPage=$currentPage;
- }
- /**
- * @param int $pageSize 设置每页显示记录数
- */
- public function setPageSize($pageSize) {
- $this->pageSize = $pageSize;
- }
- /**
- * @param int $recorbTotal 设置获取记录总数
- */
- public function setRecorbTotal($recorbTotal) {
- $this->recorbTotal = $recorbTotal;
- }
- /**
- *构造函数
- * */
- public function __construct()
- {
- $this->pageTotal = 0;
- $this->previous = 0;
- $this->next = 0;
- $this->startPage = 0;
- $this->endPage = 0;
- $this->pageSize = 20;
- $this->currentPage = 0;
- }
- /**
- *分页算法
- * */
- private function arithmetic() {
- if ($this->currentPage
- $this->currentPage = 1;
- $this->pageTotal = floor ( $this->recorbTotal / $this->pageSize ) + ($this->recorbTotal % $this->pageSize > 0 ? 1 : 0);
- if ($this->currentPage > 1 && $this->currentPage > $this->pageTotal)
- header ( 'location:' . $this->baseUri . 'page=' . $this->pageTotal );
- $this->next = $this->currentPage + 1;
- $this->previous = $this->currentPage - 1;
- $this->startPage = ($this->currentPage + 5) > $this->pageTotal ? $this->pageTotal - 10 : $this->currentPage - 5;
- $this->endPage = $this->currentPage $this->currentPage + 5;
- if ($this->startPage
- $this->startPage = 1;
- if ($this->pageTotal $this->endPage)
- $this->endPage = $this->pageTotal;
- }
- /**
- *分页样式
- * */
- protected function pageStyle() {
- $result = "共" . $this->pageTotal . "页 ";
- if ($this->currentPage > 1)
- $result .= " . $this->baseUri . "page=1/">9 . $this->baseUri . "page=$this->previous/">3";
- else
- $result .= "9 3";
- for($i = $this->startPage; $i $this->endPage; $i ++) {
- if ($this->currentPage == $i)
- $result .= " $i";
- else
- $result .= " . $this->baseUri . "page=$i/">$i";
- }
- if ($this->currentPage != $this->pageTotal) {
- $result .= " . $this->baseUri . "page=$this->next/">4";
- $result .= " . $this->baseUri . "page=$this->pageTotal/">:";
- } else {
- $result .= " 4 :";
- }
- return $result;
- }
- /**
- *执行分页
- * */
- public function execute() {
- if ($this->baseUri != "" && $this->recorbTotal == 0)
- return "";
- $this->arithmetic();
- return $this->pageStyle ();
- }
- }
调用代码(test.php 代码如下)
- include_once 'Pager.class.php';
- $pager=new Pager();
- if (isset ( $_GET ['page'] ) && ! emptyempty ( $_GET ['page'] ))
- $pager->setCurrentPage($_GET ['page']);
- else
- $pager->setCurrentPage(1);
- $pager->setRecorbTotal(1000);
- $pager->setBaseUri("test.php?");
- echo $pager->execute();
数据库结合 mysql 通用存储过程分页 海量数据分页 就是一个完美的分页了
我们还可继承 Pager 类重写pageStyle方法就可以有不同的样式了. yes ok

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

Dreamweaver Mac版
ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。
