php实现的分页工具类

 本文分享一个php实现的分页工具类,代码内有注释,大家参考使用吧

代码:
 
 代码如下:
    /**
    * 把中间的看成一个可以滑动的固定长度的尺子
    *
    * 把$this->_totalShowPages 当成一个可以滑动的固定长度尺子,
    * 然后$this->_totalPages就是一个给定长度的木块,尺子在这个
    * 木块上滑动。情况两种:
    * 1. 尺子长度大于木块长度,那么就直接输出所有的页码;
    * 2. 尺子长度小于木块长度,那么就只用找到输出这个尺子长度页
    * 数的起始点——$start, $end;
    * @Access protected
    * @Return void
    * @Exception none
    */
    protected function _getShowPageNumber()
    {
    $pageHtml = '';
    //找到$start点
    if($this->_curPage - 2 > 1) {
    $start = $this->_curPage - 2;
    } else {
    $start = 1;
    }
    //找到$end 点
    $end = $start + $this->_totalShowPages;
    if($end >= $this->_totalPages) {
    $end = $this->_totalPages;
    $start = $end - $this->_totalShowPages; //保证页面显示的长度为$this->_totalShowPages
    }
    if($start != 1) {
    $pageHtml .= $this->_getPageHtml(1);
    $preMore = $this->_curPage - $this->_totalShowPages;
    if($preMore < 1) {
    $preMore = 1;
    }
    $pageHtml .= $this->_getMorePageHtml($preMore);
    }
    for($page = $start; $page < $end; $page ++) {
    $pageHtml .= $this->_getPageHtml($page);
    }
    if($end != $this->_totalPages) {
    $pageHtml .= $this->_getMorePageHtml($end);
    }
    $pageHtml .= $this->_getNormalPageHtml($this->_totalPages);
 
    return $pageHtml;
    }
 
 
第一种老想法的代码实现:
 
代码如下:
    /**
    * 一步步的来
    *
    * @desc
    *
    * @Access protected
    * @Return void
    * @Exception none
    */
    protected function _getShowPageNumberTwo()
    {
    if($this->_curPage < $this->_totalShowPages) {
    for($page = 1; $page < $this->_totalShowPages; $page ++) {
    $pageHtml .= $this->_getPageHtml($page);
    }
    $pageHtml .= $this->_getMorePageHtml($this->_totalShowPages);
    $pageHtml .= $this->_getNormalPageHtml($this->_totalPages);
    } else {
    $pageHtml .= $this->_getNormalPageHtml(1);
    if($this->_curPage == $this->_totalShowPages) {
    $pageHtml .= $this->_getMorePageHtml(1);
    } else {
    $pageHtml .= $this->_getMorePageHtml($this->_curPage - $this->_totalShowPages);
    }
    if($this->_curPage + $this->_totalShowPages >= $this->_totalPages) {
    for($page = $this->_totalPages - $this->_totalShowPages; $page < = $this->_totalPages; $page ++) {
    $pageHtml .= $this->_getPageHtml($page);
    }
    } else {
    $start = $this->_curPage - 2;
    $end = $this->_curPage + $this->_totalShowPages - 2;
    for($page = $start; $page < $end; $page ++) {
    $pageHtml .= $this->_getPageHtml($page);
    }
    $pageHtml .= $this->_getMorePageHtml($this->_curPage + $this->_totalShowPages - 2);
    $pageHtml .= $this->_getNormalPageHtml($this->_totalPages);
    }
    }
 
    return $pageHtml;
    }
 

时间: 2024-09-10 22:57:00

php实现的分页工具类的相关文章

c#分页工具类,完美实现List分页

using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace ProjectProgress.BLL { /// <summary> /// 分页工具类 /// </summary> /// <typeparam name="T"></typeparam> public class PagingUtil<T

常用PHP封装分页工具类

分页基本上是每个项目都会使用到的,所以呢,把它封装成一个工具类,以后直接调用就可以了(虽然TP框架的灰常强大,但是自己封一个也未尝不可.),这样既省时又省力还赚'工分'. 我封的这个分页工具类还比较完整,有首页,上一页,下一页,末页和可选数量的页码数量(也就是当页面很多时,只显示依据参数传入的个数),还可以依据需求选择是否使用下拉跳转页面功能. <?php /** * 分页工具类 */ class page{ /** * 返回分页所需字符串 * @param $pageNum int 显示的页码

分页工具类JdbcUtil

分页工具类JdbcUtil 对数据库表进行查询,StringBuffer sql = "select * from Table"等,查询得到数据很多(10000条),这个时候你需要采取后台分页的形式,将查询结果返回. 调用JdbcUtil中的paginationSql()方法,将sql组合成sql级别的分页形式. package com.jdbc.util; public class JdbcUtil { private static String PAGINATION_START =

PHP实现的一分页工具类代码

  总的页数是一个长度一定的木块,这把尺子在这个木块上滑动,前提,尺子的两端不能超出木块:D.发现这么一来要做的事情就是去找这个尺子在木块上的起始点,根据用户给传进来的page变量.哈哈,关键代码下面:  代码如下       /**     * 把中间的看成一个可以滑动的固定长度的尺子     *     * 把$this->_totalShowPages 当成一个可以滑动的固定长度尺子,     * 然后$this->_totalPages就是一个给定长度的木块,尺子在这个     * 木

php实现分页工具类分享_php实例

代码: 复制代码 代码如下:     /**    * 把中间的看成一个可以滑动的固定长度的尺子    *    * 把$this->_totalShowPages 当成一个可以滑动的固定长度尺子,    * 然后$this->_totalPages就是一个给定长度的木块,尺子在这个    * 木块上滑动.情况两种:    * 1. 尺子长度大于木块长度,那么就直接输出所有的页码:    * 2. 尺子长度小于木块长度,那么就只用找到输出这个尺子长度页    * 数的起始点--$start,

JSP分页技术实现 使用工具类实现通用分页处理

js|分页 目前比较广泛使用的分页方式是将查询结果缓存在HttpSession或有状态bean中,翻页的时候从缓存中取出一页数据显示.这种方法有两个主要的缺点:一是用户可能看到的是过期数据:二是如果数据量非常大时第一次查询遍历结果集会耗费很长时间,并且缓存的数据也会占用大量内存,效率明显下降. 其它常见的方法还有每次翻页都查询一次数据库,从ResultSet中只取出一页数据(使用rs.last();rs.getRow()获得总计录条数,使用rs.absolute()定位到本页起始记录).这种方式

分页封装实用工具类及其使用方法

分页封装实用工具类及其使用方法 作者: javaboy2012 Email:yanek@163.com qq:    1046011462     package com.yanek.util; import java.util.List; public class PageBean { /** * @param args */ public static void main(String[] args) { } private int currentpage; // 当前页数 private

运用工具类分页 页面怎么写?

问题描述 运用工具类分页 页面怎么写? 我对分页的页面不知道怎么下手 工具类 在页面 如何使用不清楚,求高人指点 public class Pagination implements Serializable { private static final long serialVersionUID = 1L; private int start; // start表示当前页开始的记录数,start=每页行数*(当前页数-1) private int end; // 当前页结束的记录行数 priv

角色权限管理系统(工具类部分)

为了更好的开发,这次项目我写了几个比较有用的工具类主要就围绕数据库操作.分页.session来弄的一起来看看吧   1.数据库连接工具类   [php]   <?php         class DBUtil{      private $host="localhost";      private $username="root";      private $password="123456";      private $dbnam