php 分页类(未实战)

<?php 

/**
*
*/
class Page
{
    private $_总页码;        //总页码
    private $_总条数;        //总条数
    private $_每页显示条数;    //每页显示条数
    private $_当前页码;        //当前页码    

    private $url;            //当前URL
    private $bothnum;        //位于当前页码两边的页码数量
    private $limit;            //分页查询条件

    function __construct($_total,$_pagesize)
    {
        $this->_总条数 = $_total?$_total:1;
        $this->_每页显示条数  $_pagesize;
        $this->_总页码 = ceil($this->_总条数/$this->_每页显示条数)
        $this->_当前页码  $this->setPage();

        $this->url = $this->setUrl();
        $this->bothnum = 2;
        $this->limit = ‘LIMIT ‘.($this->_当前页码) * $this->_每页显示条数.‘,‘.$this->_每页显示条数;
    }

    private function setPage()
    {
        if(!empty($_GET[‘page‘]))
        {
            if($_GET[‘page‘] > 0)
            {
                if($_GET[‘page‘] > $this->_总页码)
                {
                    return $this->_总页码;
                }
                else
                {
                    return 1;
                }
            }
            else
            {
                return 1;
            }
        }
    }

    private function setUrl()
    {
        $_url = $_SERVER["REQUEST_URI"];
        $_para = parse_url($_url);
        if (isset($_par[‘query‘])) {
            parse_str($_par[‘query‘],$_query);
            unset($_query[‘page‘]);
            $_url = $_par[‘page‘]."?".http_build_query($_query);
        }
        return $_url;
    }

    private function pageList()
    {
        $_pagehtml = ‘‘;

        for ($i = $this->bothnum;$i>=1;$i--){
            $_page = $this->_当前页码 - $i;
            if ($_page < 1) break;
            $_pagehtml .= ‘<a href="‘.$this->_url.‘&page=‘.$_page.‘">‘.$_page.‘</a>‘;
        }

        $_pagehtml .= ‘<span class="me">‘.$this->_当前页码.‘</span>‘;

        for ($i = 1;$i<= $this->bothnum;$i++){
            $_page = $this->_当前页码 + $i;
            if($_page > $this->_总页码) break;
            $_pagehtml .= ‘<a href="‘.$this->_url.‘&page=‘.$_page.‘">‘.$_page.‘</a>‘;
        }

        return $_pagehtml;
    }

    private function first()
    {
        if ($this->_当前页码 > $this->bothnum + 1) {
            return ‘<a href = "‘.$this->url.‘">1</a>...‘;
        }
    }

    private function prev()
    {
        if ($this->_当前页码 == 1) {
            return ‘<span class="disabled">上一页</span>‘;
        }
        else
        {
            return ‘<a href="‘.$this->url.‘&page=‘.($this->_当前页码 - 1).‘">上一页</a>‘;
        }
    }

    private function next()
    {
        if ($this->_当前页码 == $this->_总页码) {
            return ‘<span class="disabled">下一页</span>‘;
        }
        else
        {
            return ‘<a href="‘.$this->url.‘&page=‘.($this->_当前页码 + 1).‘">下一页</a>‘;
        }
    }

    private function last()
    {
        if($this->_总页码 - $this->_当前页码 > $this->bothnum)
        {
            return ‘...<a href="‘.$this->url.‘&page=‘.$this->_总页码.‘">‘.$this->_总页码.‘</a>‘;
        }
    }

    public function showpage()
    {
        $_page .= $this->first();
        $_page .= $this->pageList();
        $_page .= $this->last();
        $_page .= $this->prev();
        $_page .= $this->next();
        return $_page;
    }
}

?>
时间: 2024-11-05 12:42:31

php 分页类(未实战)的相关文章

刚写的一个js分页类,未优化

以前也写过,很久以前了,写的很长,并且使用起来也不灵活.这次搞了个灵活版的. /* * SunPage --自定义分页类,仅获取分页的html代码,简单应用 * Sunbt 2015-5-4 * v1.0 * @param current_page int 当前页 * @param totle_page int 总页数 * @param take_num int 当前页左右携带页码数 * @param func_obj obj 分页实现函数 */ var SunPage = function(c

分页类封装

<?php /* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * 分页类 * 使用方式: * $page = new Page(); * $page->init(1000, 20); * $page->setNotActiveTemplate('<span> {a} </span>'); * $page->s

Django 自定义分页类

分页类代码: class Page(object): ''' 自定义分页类 可以实现Django ORM数据的的分页展示 输出HTML代码: 使用说明: from utils import mypage page_obj = mypage.Page(total_num, current_page, 'publisher_list') publisher_list = data[page_obj.data_start:page_obj.data_end] page_html = page_obj.

PHP非常好用的分页类

分页类: <?php /* * ********************************************* * @类名: page * @参数: $myde_total - 总记录数 * $myde_size - 一页显示的记录数 * $myde_page - 当前页 * $myde_url - 获取当前的url * @功能: 分页实现 * @作者: 宋海阁 */ class Page { private $myde_total; //总记录数 private $myde_siz

php分页类

<?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit; //SQL语句使用limit从句,限制获取记录个数 private $uri; //自动获取url的请求地址 private $pageNum; //总页数 private $page; //当前页 private $config = arr

PHP简单分页类

<?php /* * ********************************************* * @类名: page * @参数: $myde_total - 总记录数 * $myde_size - 一页显示的记录数 * $myde_page - 当前页 * $myde_url - 获取当前的url * @功能: 分页实现 * @作者: 宋海阁 */ class page { private $myde_total; //总记录数 private $myde_size; //

thinkphp简洁、美观、靠谱的分页类

废话不多说先上图预览下:即本博客的分页: 这个分页类是在thinkphp框架内置的分页类的基础上修改而来: 原分页类的一些设计,在实际运用中感觉不是很方便: 1:只有一页内容时不显示分页: 2:原分页类在当前页是第一页和最后一页的时候,不显示第一页和最后一页的按钮: 3:分页数比较少时不显示首页和末页按钮: 4:包裹分页内容的父级div没有class: 针对以上问题逐一进行了修改成如下: 1:如果没有数据不显示分页,如果有一页及以上内容即显示分页: 2:默认就显示第一页和最后一页按钮,但是在当前

ASP经典分页类

================================================================= 'XDOWNPAGE ASP版本 '版本 1.00 'Code by zykj2000 'Email: [email protected] 'BBS: http://bbs.513soft.net '本程序可以免费使用.修改,希望我的程序能为您的工作带来方便 '但请保留以上请息 ' '程序特点 '本程序主要是对数据分页的部分进行了封装,而数据显示部份完全由用户自定义

thinkphp自带分页类

thinkphp自带分页使用案例: $Data = M('Data'); // 实例化Data数据对象  date 是你的表名     import('ORG.Util.Page');// 导入分页类     $count = $Data->where($map)->count();// 查询满足要求的总记录数 $map表示查询条件     $Page = new Page($count);// 实例化分页类 传入总记录数     $show = $Page->show();// 分页显

php中的实用分页类

<table width="100%" border="1" cellpadding="0" cellspacing="0"> <tr> <td>地区代号</td> <td>地区名称</td> <td>父级代号</td> </tr> <?php include("LZY.class.php");