php 分页类 只需new时写入count即可

$count = M(‘recharge‘)->where($map)->count();$page = new Page($count);$lists  = M(‘recharge‘)->where($map)->order(‘ctime desc‘)->limit($page->firstRow.‘,‘.$page->listRows)->select();$this->assign(‘page‘,$page->show());$this->assign(‘pager‘,$page);

<?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]// +----------------------------------------------------------------------// | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )// +----------------------------------------------------------------------// | Author: 麦当苗儿 <[email protected]> <http://www.zjzit.cn>// +----------------------------------------------------------------------namespace Think;

class Page{    public $firstRow; // 起始行数    public $listRows; // 列表每页显示行数    public $parameter; // 分页跳转时要带的参数    public $totalRows; // 总行数    public $totalPages; // 分页总页面数    public $rollPage   = 11;// 分页栏每页显示的页数   public $lastSuffix = true; // 最后一页是否显示总页数

    private $p       = ‘p‘; //分页参数名    private $url     = ‘‘; //当前链接URL    private $nowPage = 1;

   // 分页显示定制    private $config  = array(        ‘header‘ => ‘<span class="rows">共 %TOTAL_ROW% 条记录</span>‘,        ‘prev‘   => ‘<<‘,        ‘next‘   => ‘>>‘,        ‘first‘  => ‘1...‘,        ‘last‘   => ‘...%TOTAL_PAGE%‘,        ‘theme‘  => ‘%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%‘,    );

    /**     * 架构函数     * @param array $totalRows  总的记录数     * @param array $listRows  每页显示记录数     * @param array $parameter  分页跳转的参数     */    public function __construct($totalRows, $listRows=20, $parameter = array()) {        C(‘VAR_PAGE‘) && $this->p = C(‘VAR_PAGE‘); //设置分页参数名称        /* 基础设置 */        $this->totalRows  = $totalRows; //设置总记录数        $this->listRows   = $listRows;  //设置每页显示行数        $this->parameter  = empty($parameter) ? $_GET : $parameter;        $this->nowPage    = empty($_GET[$this->p]) ? 1 : intval($_GET[$this->p]);        $this->nowPage    = $this->nowPage>0 ? $this->nowPage : 1;        $this->firstRow   = $this->listRows * ($this->nowPage - 1);    }

    /**     * 定制分页链接设置     * @param string $name  设置名称     * @param string $value 设置值     */    public function setConfig($name,$value) {        if(isset($this->config[$name])) {            $this->config[$name] = $value;        }    }

    /**     * 生成链接URL     * @param  integer $page 页码     * @return string     */    private function url($page){        return str_replace(urlencode(‘[PAGE]‘), $page, $this->url);    }

    /**     * 组装分页链接     * @return string     */    public function show() {        if(0 == $this->totalRows) return ‘‘;

        /* 生成URL */        $this->parameter[$this->p] = ‘[PAGE]‘;        $this->url = U(ACTION_NAME, $this->parameter);        /* 计算分页信息 */        $this->totalPages = ceil($this->totalRows / $this->listRows); //总页数        if(!empty($this->totalPages) && $this->nowPage > $this->totalPages) {            $this->nowPage = $this->totalPages;        }

        /* 计算分页零时变量 */        $now_cool_page      = $this->rollPage/2;      $now_cool_page_ceil = ceil($now_cool_page);      $this->lastSuffix && $this->config[‘last‘] = $this->totalPages;

        //上一页        $up_row  = $this->nowPage - 1;        $up_page = $up_row > 0 ? ‘<a class="prev" href="‘ . $this->url($up_row) . ‘">‘ . $this->config[‘prev‘] . ‘</a>‘ : ‘‘;

        //下一页        $down_row  = $this->nowPage + 1;        $down_page = ($down_row <= $this->totalPages) ? ‘<a class="next" href="‘ . $this->url($down_row) . ‘">‘ . $this->config[‘next‘] . ‘</a>‘ : ‘‘;

        //第一页        $the_first = ‘‘;        if($this->totalPages > $this->rollPage && ($this->nowPage - $now_cool_page) >= 1){            $the_first = ‘<a class="first" href="‘ . $this->url(1) . ‘">‘ . $this->config[‘first‘] . ‘</a>‘;        }

        //最后一页        $the_end = ‘‘;        if($this->totalPages > $this->rollPage && ($this->nowPage + $now_cool_page) < $this->totalPages){            $the_end = ‘<a class="end" href="‘ . $this->url($this->totalPages) . ‘">‘ . $this->config[‘last‘] . ‘</a>‘;        }

        //数字连接        $link_page = "";        for($i = 1; $i <= $this->rollPage; $i++){         if(($this->nowPage - $now_cool_page) <= 0 ){            $page = $i;         }elseif(($this->nowPage + $now_cool_page - 1) >= $this->totalPages){            $page = $this->totalPages - $this->rollPage + $i;         }else{            $page = $this->nowPage - $now_cool_page_ceil + $i;         }            if($page > 0 && $page != $this->nowPage){

                if($page <= $this->totalPages){                    $link_page .= ‘<a class="num" href="‘ . $this->url($page) . ‘">‘ . $page . ‘</a>‘;                }else{                    break;                }            }else{                if($page > 0 && $this->totalPages != 1){                    $link_page .= ‘<span class="current">‘ . $page . ‘</span>‘;                }            }        }

        //替换分页内容        $page_str = str_replace(            array(‘%HEADER%‘, ‘%NOW_PAGE%‘, ‘%UP_PAGE%‘, ‘%DOWN_PAGE%‘, ‘%FIRST%‘, ‘%LINK_PAGE%‘, ‘%END%‘, ‘%TOTAL_ROW%‘, ‘%TOTAL_PAGE%‘),            array($this->config[‘header‘], $this->nowPage, $up_page, $down_page, $the_first, $link_page, $the_end, $this->totalRows, $this->totalPages),            $this->config[‘theme‘]);        return "<div>{$page_str}</div>";    }}
时间: 2024-08-24 05:37:28

php 分页类 只需new时写入count即可的相关文章

只需手动增加一行代码即可让Laravel4运行在SAE

Github:https://github.com/chariothy/laravel4-sae laravel4-sae 只需手动增加一行代码即可让Laravel4(~4.2)运行在SAE,而且在本地和在SAE开发无需命令切换,自动判断环境并切换配置. 安装 在SAE安装Laravel 在SAE安装Laravel与本地环境安装稍有区别: 在SAE的"应用管理"中新建一个没有代码的应用,比如叫project-name(这里面只是便于举例,实际上SAE不允许用字符'-'): 用svn将其

使用活字格,只需2个礼拜,即可完成快递审批管理系统设计

南京塔塔汽车零部件系统有限公司(以下简称南京塔塔)是一家外商独资的汽车零部件企业,主要给通用,沃尔沃,奔驰,捷豹路虎等整车厂供应塑料件. 项目背景: 南京塔塔每个月的快递费用非常高,平均一个月3万左右,之前是使用纸质的审批签字,面临的问题是: 1. 领导审批时不知道费用预估是多少 2. 相关人员需要找领导签字 3. 费用统计分析非常困难 解决方案 南京塔塔采用活字格的开发平台,在2个星期之内开发出一套快递审批系统,包括了快递申请填写,快递申请审批,快递费用对账,快递费用统计报表分析,域账号验证,

如何删除Word页眉下横线?只需1招即可轻松帮你搞定!

在我们职场办公时候经常会处理各种Word文档,这时候总会遇到各种类型的问题,就比如页眉下讨人厌的横线,经常为这个莫名其妙的横线而感到头疼,关键它还删除不掉! 针对这个问题,特意为大家整理了几个小技巧,希望能够帮上你! 方法一:设置正文样式去除 其实页眉下横线也没有你想象的那么难去除,只需要这是正文样式即可! 操作步骤:鼠标点击Word里面的页眉,在开始样式里面选中[正文],即可立即清除掉讨人厌的横线. 方法二.格式边框去除 这个方法想多比较复杂,不过感兴趣的朋友可以学一下也没有什么坏处! 操作步

PHP+jQuery 实现可选择url和ajax方式的分页类

1 /* 2 ******* 环境:Apache2.2.8 ( 2.2.17 ) + PHP5.2.6 ( 5.3.3 ) + MySQL5.0.51b ( 5.5.8 ) + jQuery-1.8.3.min.js + Smarty 3.1.18 ******* 3 ******* Date:2014-10-11 4 ******* Author:小dee5 ******* Blog:http://www.cnblogs.com/dee0912/6 */ 做了一个分页的功能模块,主要的文件包括

PHP+jQuery 长文章分页类 ( 支持 url / ajax 分页方式 )

/* ******* 环境:Apache2.2.8 ( 2.2.17 ) + PHP5.2.6 ( 5.3.3 ) + MySQL5.0.51b ( 5.5.8 ) + jQuery-1.8 ******* 其它组件:jQuery-1.8.3.min.js + Smarty 3.1.18 + TinyMCE 4.1.6 ******* Date:2014-10-20 ******* Author:小dee ******* Blog:http://www.cnblogs.com/dee0912/*

探秘static——类不需实例化就能用?

一般情况下,需要用到某个类的时候,都必须先实例化这个类,才能对其进行调用.在编程过程中发现,有些类不用实例化就可以直接拿来使用,使用它的字段.方法等等. 这时候,靠的就是static作用.static英文意思为"静止的,静态的",在编程中可以作为修饰符,类.字段.属性.方法等被static修饰后,变为静态类.静态字段.静态属性.静态方法-- static修饰的类成为静态类,静态类中只能包含静态成员(被static修饰的字段.属性.方法),不能被实例化,不能被继承:非静态中可以包含静态成

PHP数据库操作&amp;分页类

MySQL数据库操作类: 1 <?php 2 class mysql { 3 private $db_host; //数据库主机 4 private $db_user; //数据库用户名 5 private $db_pwd; //数据库用户名密码 6 private $db_database; //数据库名 7 private $conn; //数据库连接标识; 8 private $result; //执行query命令的结果资源标识 9 private $sql; //sql执行语句 10

一个通用分页类

1.功能 这个通用分页类实现的功能是输入页数(第几页)和每页的数目,就能获得相应的数据. 2.实现原理 分页的实现通常分为两种,一种是先把数据全查询出来再分页,一种是需要多少查询多少,这里使用第二种,所以就需要先实现在dao层能够查询一定范围内的数据,这里就实现通过id作为键值,查询一定范围内的数据的功能 dao层需要实现一个返回id在一个范围内的数据,那就在dao层的接口中添加一个这个方法: List<User> selectByRange(@Param("low") I

Java是什么?只需5分钟,了解java必须要知道的知识点

不清楚Java是什么?只需5分钟,了解java必须要懂的知识点 Java吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性.下面是我收集的Java必备基础知识点,希望对你有用. 1. 简述Java的基本历史 Java起源于SUN公司的一个GREEN的项目,其原先目的是:为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机.冰箱等. 2. Java特点 简单的.面向对象的.分布式的.安全的.稳定的.与平台无关的.可解释的.多线的.动态的语言