php简单分页类实现方法

本文实例讲述了php简单分页类实现方法。分享给大家供大家参考。具体如下:

代码如下:

class PageModel { 
    /**
     * 获取分页数组
     * @param unknown $page 当前页面数
     * @param unknown $goodsCount 商品总数
     * @param unknown $pageLength 每个页面展示页面数
     */ 
    public static function getPageArr($page, $goodsCount, $pageCountLength, $pageLength) { 
        //页面总数 
        $allPageCount = ceil($goodsCount / $pageLength); 
       //如果页面总是比长度短,设定页面长度为页面总数 
       if ($allPageCount <= $pageCountLength) { 
           $allPageCount = ceil($goodsCount / $pageLength); 
       } 
        //总页面数一页展示完 
        if ($allPageCount <= $pageCountLength) { 
            for ($i = 0; $i < $allPageCount; $i ++) { 
                $arr[] = array('page' => $i + 1); 
            } 
            return $arr; 
        } 
        //前后的长度 
        $halfLength = floor($pageCountLength / 2); 
        //因为太小,所以放原来位置,左边 
        if ($page <= $halfLength) { 
            $arr = array(); 
            for ($i = 0; $i < $pageCountLength; $i ++) { 
                $arr[] = array('page' => $i + 1); 
            } 
            return $arr; 
        } 
        //太大,只取到边缘,超出也只取到边缘 
        if ($page > $allPageCount - floor($pageCountLength / 2)) { 
            for ($i = -$pageCountLength; $i < 0; $i ++) { 
                $arr[] = array('page' => $allPageCount + $i + 1); 
            } 
            return $arr; 
        } 
        //中间的数,把中间的取出来 
        for ($i = -$halfLength; $i < $pageCountLength - $halfLength; $i ++) { 
            $arr[] = array('page' => $page + $i); 
        }
        return $arr;
    }
}

希望本文所述对大家的php程序设计有所帮助。

(0)

相关推荐

  • 两款万能的php分页类

    本文为大家分享个超级好用.万能的php分页类,具体的实现代码如下 第一款php分页类 <?php /* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * 分页类 * 使用方式: * $page = new Page(); * $page->init(1000, 20); * $page->setNotActiveTemplate('<

  • 精美漂亮的php分页类代码

    这是一款简单,方便,功能齐全的分页类,可以根据自己的需要更改CSS样式文件以实现分页颜色的控制,利用php分页类,可以省去自己很多时间,只需要在分页的地方嵌入即可,下面看下使用方法: 1,在head里包含pager.css 复制代码 代码如下: <link href="pager.css" type="text/css" rel="stylesheet" /> 2,在分页处进行类的实例化: 复制代码 代码如下: <?php   

  • 高效mongodb的php分页类(不使用skip)

    mongodb分页skip+limit分页要先查出所有结果再去跳过,这样如果查询页面越往后效率越低. 如果能够通过查询条件查出每页结果的最后一条记录,在用最后一条记录作为查询条件去查下一页,这样每次都查询页面size条记录,效率不会差. 具体代码如下:包含mongodb.class.php, page.class.php, test.php mongodb.class.php mongodb 操作类 复制代码 代码如下: <?php function show_error($message, $

  • ThinkPHP使用心得分享-分页类Page的用法

    ThinkPHP中的Page类在ThinkPHP/Extend/Library/ORG/Util/Page.class.php中,所以使用前要引入Page类: 复制代码 代码如下: import('ORG.Util.Page'); //Page类的引入$db = M('abc');//实例化数据表abc$where = array('id'=>'2';);//条件语句$where,例表中字段id的值为2$count = $db->where($where)->count();//获取符合

  • 仿Aspnetpager的一个PHP分页类代码 附源码下载

    基本逻辑思路和.net的一样,就是将通过实体类来进行配置换成了通过数组进行配置,逻辑比较简单,根据条件判断拼接分页html. 有以下几个简单的功能: 1:支持相关按钮的显示与否配置 2:支持每页数目,文本名称,html标签类名称的自由配置 3:支持url重写过的页面(需自己在配置数组中添加重写规则) 简单吧,还是直接上代码: 核心代码:pager.class.php 复制代码 代码如下: <?php class pager{ //分页的参数配置 private $config=array( //

  • PHP实现简单实用的分页类代码

    本文实例讲述了PHP实现简单实用的分页类.分享给大家供大家参考,具体如下: <?php class Page { private $total; //总记录 private $pagesize; //每页显示多少条 private $limit; //limit private $page; //当前页码 private $pagenum; //总页码 private $url; //地址 private $bothnum; //两边保持数字分页的量 //构造方法初始化 public funct

  • PHP ajax 分页类代码

    <?php //本分页类不处理SQL; //大大的加快了分页功能 //http://blog.csdn.net/fkedwgwy //潇湘博客--潇湘 /** 演示 require_once('../libs/classes/page.class.php'); $page=new page(array('total'=>1000,'perpage'=>20)); echo 'mode:1<br>'.$page->show(); echo '<hr>mode:

  • PHP实现可自定义样式的分页类

    本文实例为大家分享了PHP实现可自定义样式的分页类,供大家参考,具体内容如下 <?php //namespace Component; /** * 2016-3-27 * @author ankang */ class Page { private $ShowPage; private $CountPage; private $Floorp; private $PageUrl; private $PageClass; private $CurClass; /** * @author ankang

  • PHP分页类集锦

    分页类一 复制代码 代码如下: <?php /** 分页类 修改:Silence Creatdate:2006-5-30 LastModify:2009-5-31 使用方法 $page = new page ( $result, 20 ); //$result为返回记录集数组 ,20为返回每页条数 $index = $page->GetIndexBar () . $page->GetPageInfo (); print_r ( $result ); echo \"<br&

  • php自定义分页类完整实例

    本文实例讲述了php自定义分页类.分享给大家供大家参考,具体如下: <?php header("Content-type:text/html;Charset=utf-8"); class SubPages{ private $each_disNums;//每页显示的条目数 private $nums;//总条目数 private $current_page;//当前被选中的页 private $sub_pages;//每次显示的页数 private $pageNums;//总页数

  • 仿dedecms下拉分页样式修改的thinkphp分页类实例

    本文实例讲述了仿dede下拉分页样式修改的thinkphp分页类.分享给大家供大家参考.具体实现方法如下: 修改thinkphp分页类:如下拉列表式分页(类似dedecms分页): 纯html代码: 复制代码 代码如下: <select name="sldd" style="width:36px" onchange="location.href=this.options[this.selectedIndex].value;"> <

  • ThinkPHP分页类使用详解

    一.首先需要在MsgManage控制器中加入分页方法 知识点:1.count函数的试用2.Page类实例化操作及相关参数了解3.limit函数了用4.show函数了解 编辑文件admin/Lib/Action/MsgManageAction.class.php 代码如下: 复制代码 代码如下: class MsgManageAction extends CommonAction {    public function index(){     import('ORG.Util.Page'); 

随机推荐