跳至
[1]
[2]
[全屏预览]
<?php /** * 分页类 */ class Page { /** * @var integer $current_page 当前页数 */ protected $current_page; /** * @var integer $totle_pages 总共的页数 */ protected $totle_pages; /** * @var integer $per_page_number 每页的数量 */ protected $per_page_number; /** * @var integer $totle_number 总共的数量 */ protected $totle_number; /** * 构造函数 * * @param integer $totle_number 总共的记录数 * @param integer $per_page_number 每页的记录数,默认为10 */ public function __construct($totle_number, $current_page, $per_page_number = 10){ $this->totle_number = $totle_number; $this->per_page_number = $per_page_number; $this->totle_pages = $totle_number == 0 ? 1 : (($totle_number % $per_page_number == 0) ? floor($totle_number / $per_page_number) : floor($totle_number / $per_page_number) + 1); $this->current_page = $current_page > $this->totle_pages ? $this->totle_pages : $current_page <= 0 ? 1 : $current_page; } /** * 获取当前页数 * * @return integer 当前页数 */ public function getCurrentPage(){ return $this->current_page; } /** * 获取总共页数 * * @return integer 总共页数 */ public function getTotlePages(){ return $this->totle_pages; } /** * 获取当前查询应该从何处开始 * * @return integer 当前查询应该开始的地方 */ public function getCurrentNum(){ return ($this->current_page - 1) * $this->per_page_number; } /** * 获取每页数量 * * @return integer 每页数量 */ public function getPerPageNum(){ return $this->per_page_number; } /** * 获取前台显示的页数 * * @param integer $max_show_page_number 最大显示的页数,默认为5 * @return Array 包含了页数信息的数组 */ public function getPages($max_show_page_number = 5){ if($max_show_page_number > $this->totle_pages){ return $this->createArray(1, $this->totle_pages); } $half = floor($max_show_page_number / 2); if($this->current_page <= floor($this->totle_pages / 2)){ if($this->current_page < $half){ return $this->createArray(1, $max_show_page_number); }else{ return $this->createArray($this->current_page - $half + 1, $this->current_page - $half + $max_show_page_number); } }else{ if($this->totle_pages - $this->current_page < $half){ return $this->createArray($this->totle_pages - $max_show_page_number, $this->totle_pages - 1); }else{ return $this->createArray($this->current_page + $half - $max_show_page_number, $this->current_page + $half - 1); } } } /** * 创建一个数组,数组的值从$start 到 $end * * @param integer $start 数值开始的值 * @param integer $end 数组结束的值 * @param integer $step 数组的值增长的步长,默认为1 * @return Array 如果步长为0返回空数组,如果步长大于0,返回从小到大排序的值,反之返回从大到小排序的值 */ private function createArray($start, $end, $step = 1){ if($step == 0){ return []; } $result = []; for($i = 0; $i <= ($end-$start); $i+= $step){ $result[$i] = $start + $i; } return $result; } } ?>
2. [代码][PHP]代码 跳至 [1] [2] [全屏预览]
<?php require "pagination.php"; // 首先需要先获取数据总数 $count = $model->getCount(); // we suppose there is a model can do sql query // 获取当前页数,此处是从get参数中获取 $current_page = isset($_GET['page']) ? $_GET['page'] : 1; // 实例化page类 $page = new Page($count, $current_page); // 查询当前页需要展示的信息,使用sql的LIMIT $data = $model->query()->limit($page->getCurrentNum(), $page->getPerPageNum()); // 现在就可以使用一系列的get方法来获取你需要在页面上展示的信息了 // 把 $data , $current_page 和 $page->getPages() 传递给视图,想要怎么样展示就看你的意愿了。 // $page->getPages()可以自动获取当前页数附近的几页,返回一个数组,直接在前台展示即可。 ?>
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
1 周前ByDDD
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
在哪里可以找到原子中的起重机控制钥匙卡
1 周前ByDDD

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版