自己开发的分页类,可以适用于各种使用原生sql的场景
跳至
[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 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
2 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
스플릿 소설을이기는 데 얼마나 걸립니까?
1 몇 달 전
By DDD
R.E.P.O. 파일 저장 위치 : 어디에 있고 그것을 보호하는 방법은 무엇입니까?
1 몇 달 전
By DDD
R.E.P.O. 최고의 그래픽 설정
2 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
어 ass 신 크리드 그림자 : 조개 수수께끼 솔루션
1 몇 주 전
By DDD

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제
Gmail 이메일의 로그인 입구는 어디에 있나요?
7393
15


자바 튜토리얼
1630
14


Cakephp 튜토리얼
1358
52


라라벨 튜토리얼
1268
25


PHP 튜토리얼
1217
29

