首页 > 开发 > PHP > 正文

php 分页类 扩展代码

2024-05-04 22:11:09
字体:
来源:转载
供稿:网友
原来发表过一个脱离数据库的分页类,最近使用的时候发现有些时候搜索的东西过于大的时候,采用url传递参数的方式,可能会有一定的影响或者叫已知的bug,这次做了一些扩展,同时兼容了以前的模式,使用上面很简单的,只需要多设置一个参数就可以了代码如下:
代码如下:
<?php
/**
* 功能: 分页类,根据提供的数据总量和页面大小
* 创建日期:Fri Apr 20 16:45:21 CST 2007
* 最后更新:
* 作者: sanshi <sanshi0815@tom.com>
*/

class pagination
{
    var $result = array();
    var $pVar = "myp";//page参数分页记数
    var $urlParamStr = ""; //页面的所有参数
    var $sqlMoveNumber = 0; //数据的偏移量
    var $is_post = false;

    public function pagination()
    {

    }
    public function set($sum,$pageSize,$page="",$is_post = false)
    {
        $this->is_post = $is_post;
        $this->pVar = defined('PAGE_BAR') ? PAGE_BAR : 'myp' ;
        $url = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
        //计算出总页数
        $curPage = $this->getCurPage();

        $temp['sumPage'] = ceil($sum/$pageSize);
        //修改了,页码超出的bug
        if($curPage>$temp['sumPage']) $curPage=$temp['sumPage'];
        $temp['curPage'] = $curPage;
        $temp['nextPage'] = $temp['sumPage'] > $curPage ? ($curPage+1) : $temp['sumPage'];
        $temp['upPage'] = $curPage >1 ? $curPage-1 :1;
        $temp['endPage'] = $temp['sumPage'];
        $this->urlParamStr = $this->_makeUrl($url);
        $temp['urlPageStr'] = ($page=="") ? $this->_makeUrl($url) : $page.$this->urlParamStr;

        $this->sqlMoveNumber = $curPage <2 ? 0 : ($curPage-1)*$pageSize;
        $temp['sqlMoveNumber'] = $this->sqlMoveNumber;
        $temp['rowNo'] = $sum;
        $this->result = $temp;
        return $this->result;
        //print_r($temp);exit();
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表