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



    <?php /*********************************************** * @类名: page * @参数: $myde_total - 总记录数 * $myde_size - 一页显示的记录数 * $myde_page - 当前页 * $myde_url - 获取当前的url * @功能: 分页实现 * @作者: 宋海阁 */ class page { private $myde_total; //总记录数 private $myde_size; //一页显示的记录数 private $myde_page; //当前页 private $myde_page_count; //总页数 private $myde_i; //起头页数 private $myde_en; //结尾页数 private $myde_url; //获取当前的url /* * $show_pages * 页面显示的格式,显示链接的页数为2*$show_pages+1。 * 如$show_pages=2那么页面上显示就是[首页] [上页] 1 2 3 4 5 [下页] [尾页] */ private $show_pages; public function __construct($myde_total=1,$myde_size=1,$myde_page=1,$myde_url,$show_pages=2){ $this->myde_total = $this->numeric($myde_total); $this->myde_size = $this->numeric($myde_size); $this->myde_page = $this->numeric($myde_page); $this->myde_page_count = ceil($this->myde_total/$this->myde_size); $this->myde_url = $myde_url; if($this->myde_total<0) $this->myde_total=0; if($this->myde_page<1) $this->myde_page=1; if($this->myde_page_count<1) $this->myde_page_count=1; if($this->myde_page>$this->myde_page_count) $this->myde_page=$this->myde_page_count; $this->limit = ($this->myde_page-1)*$this->myde_size; $this->myde_i=$this->myde_page-$show_pages; $this->myde_en=$this->myde_page+$show_pages; if($this->myde_i<1){ $this->myde_en=$this->myde_en+(1-$this->myde_i); $this->myde_i=1; } if($this->myde_en>$this->myde_page_count){ $this->myde_i = $this->myde_i-($this->myde_en-$this->myde_page_count); $this->myde_en=$this->myde_page_count; } if($this->myde_i<1)$this->myde_i=1; } //检测是否为数字 private function numeric($num){ if(strlen($num)){ if(!preg_match("/^[0-9]+$/",$num)){ $num=1; }else{ $num = substr($num,0,11); } }else{ $num=1; } return $num; } //地址替换 private function page_replace($page){ return str_replace("{page}",$page,$this->myde_url); } //首页 private function myde_home(){ if($this->myde_page!=1){ return '<a href="'.$this->page_replace(1).'" class="page-numbers" title="首页">首页</a>'; }else{ return "<p>首页</p>"; } } //上一页 private function myde_prev(){ if($this->myde_page!=1){ return '<span class="page-numbers prev inactive"><a href="'.$this->page_replace($this->myde_page-1).'" title="上一页">上一页</a></span>'; }else{ return '<span class="page-numbers prev inactive">上一页</span>'; } } //下一页 private function myde_next(){ if($this->myde_page!=$this->myde_page_count){ return '<a class="page-numbers next" href="'.$this->page_replace($this->myde_page+1).'" title="下一页">下一页</a>'; }else{ return'<p class="page-numbers next">下一页</p>'; } } //尾页 private function myde_last(){ if($this->myde_page!=$this->myde_page_count){ return '<a href="'.$this->page_replace($this->myde_page_count).'" class="page-numbers" title="尾页">尾页</a>'; }else{ return '<p>尾页</p>'; } } //输出 public function myde_write($id='page'){ $str ='<div id="'.$id.'">'; $str.=$this->myde_home(); $str.=$this->myde_prev(); if($this->myde_i>1){ $str.='<p class="page-numbers">...</p>'; } for($i=$this->myde_i;$i<=$this->myde_en;$i++){ if($i==$this->myde_page){ $str.='<a href="'.$this->page_replace($i).'" class="page-numbers current" title="第'.$i.'页" class="cur">'.$i.'</a>'; }else{ $str.='<a href="'.$this->page_replace($i).'" class="page-numbers" title="第'.$i.'页">'.$i.'</a>'; } } if( $this->myde_en<$this->myde_page_count ){ $str.='<p class="page-numbers">...</p>'; } $str.=$this->myde_next(); $str.=$this->myde_last(); $str.='<p class="pageRemark">共<b>'.$this->myde_page_count. '</b>页<b>'.$this->myde_total.'</b>条数据</p>'; $str.='</div>'; return $str; } } ?>
    ./page.class.php 

    分页类代码,修正

    以下为调用,应用代码

    <?php
    require_once('./page.class.php'); //分页类
    $showrow = 3;//一页显示的行数
    $curpage = empty($_GET['page'])?1:$_GET['page'];//当前的页,还应该处理非数字的情况
    $url = "?page={page}";//分页地址,如果有检索条件 ="?page={page}&q=".$_GET['q']
    //省略了链接mysql的代码,测试时自行添加
    $sql = "SELECT * FROM table";
    $query = mysql_query($sql);
    $total = mysql_num_rows($query);//记录总条数
    if(!empty($_GET['page']) && $total !=0 && $curpage > ceil($total/$showrow))
    $curpage = ceil($total_rows/$showrow);//当前页数大于最后页数,取最后一页
    //获取数据
    $get_data = "select * from table limit ".($curpage-1)*$showrow.",$showrow;";
    ...
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>实例演示简易通用的PHP分页类</title>
    <style type="text/css">
    #page{
        height:40px;
        padding:20px 0px;
    }
    #page a{
        display:block;
        float:left;
        margin-right:10px;
        padding:2px 12px;
        height:24px;
        border:1px #cccccc solid;
        background:#fff;
        text-decoration:none;
        color:#808080;
        font-size:12px;
        line-height:24px;
    }
    #page a:hover{
        color:#077ee3;
        border:1px #077ee3 solid;
    }
    #page a.cur{
        border:none;
        background:#077ee3;
        color:#fff;
    }
    #page p{
        float:left;
        padding:2px 12px;
        font-size:12px;
        height:24px;
        line-height:24px;
        color:#bbb;
        border:1px #ccc solid;
        background:#fcfcfc;
        margin-right:8px;
      
    }
    #page p.pageRemark{
        border-style:none;
        background:none;
        margin-right:0px;
        padding:4px 0px;
        color:#666;
    }
    #page p.pageRemark b{
        color:red;
    }
    #page p.pageEllipsis{
        border-style:none;
        background:none;
        padding:4px 0px;
        color:#808080;
    }
    </style>
    </head>
      
    <body>
        <div class="main">
            <div class="showData">
                <!--显示数据区-->
            </div>
            <div class="showPage">
              <?php
                 if($total>$showrow){//总记录数大于每页显示数,显示分页
                 $page = new page($total,$showrow,$curpage,$url,2);
                 echo $page->myde_write();
                }
              ?>
             </div>
        </div>
    </body>
    </html>

    修改了showrow,出现了错误,再重新修改,就又好了,不思奇解,

    以前写过类,现在都不清楚类应该怎么写了。荒废时间太长了。

    现在没人用分类类代码了,除非是学习用的,一般都采用,滚动条判断读取。

  • 相关阅读:
    语言:障碍与桥梁(探索语言的本质、如何避免语言上的误解)
    知觉:看到什么就是什么(怎么避免误解别人的行为)
    沟通和认同:自我的塑造与展现(如何认识自我,如何袒露自我,如何回应尴尬问题)
    人际沟通入门(认清沟通高手的特质)
    人际沟通与社交媒体(媒介沟通的优缺点)
    javascript中的this值
    Javascript 模块化编程 --RequireJs
    datetime与int 转换通用函数
    c# 读写cookie 通用函数
    分类组件
  • 原文地址:https://www.cnblogs.com/JamyWong/p/7565375.html
Copyright © 2020-2023  润新知