php分页类

原创 2016年08月28日 14:13:38
<?php
class PageList{
    private $totalNums;     //总记录数
    private $pageSize;      //每页的记录数
    private $url;           //url
    public $limit;         //查询限制
    private $pianyi=2;        //页码左右偏移
    private $pageCount;     //总页码
    private $nowPage;       //当前页面页码


    public function __construct($totalNums,$pageSize){
        $this->totalNums = $totalNums ? $totalNums : 1;
        $this->pageSize = $pageSize ? $pageSize : 10;
        $this->pageCount = ceil($totalNums/$pageSize);
        $this->nowPage = $this->getPage();
        $this->limit = "limit ".$this->nowPage*$this->pageSize.",".$pageSize;
        $this->url = $this->setUrl();

    }

    private function numLinks(){
        $numlin='';
        for($i=$this->pianyi;$i>=1;$i--){
            if($this->nowPage>=3){
                $numlin .= "<a href='".$this->url."page=".($this->nowPage-$i)."'>".($this->nowPage-$i)."</a>";
            }
        }
        $numlin .= "<span>".$this->nowPage."</span>";

        for($j=1;$j<=($this->pianyi);$j++){
            if($this->nowPage<=($this->pageCount-3)){
                $numlin .= "<a href='".$this->url."page=".($this->nowPage+$j)."'>".($this->nowPage+$j)."</a>";
            }
        }
           // return $numlin;

        //判断何时要加省略号
        if($this->nowPage<4){
            return $numlin."...";
        }elseif($this->nowPage>($this->pageCount-4)){
            return "...".$numlin;
        }elseif($this->nowPage>($this->pageCount-4)||$this->nowPage<($this->pageCount-4)){
            return "...".$numlin."...";
        }

    }




    //设置url中的参数
    private function getPage(){
        if(isset($_GET['page'])){
            if($_GET['page']>0){
                if($_GET['page']>$this->pageCount){
                    return $this->pageCount;
                }else{
                    return $_GET['page'];
                }
            }else{
                return 1;
            }
        }else{
            return 1;
        }
    }

    //分解url参数,有参数page,path参数。此方法也可以用正则表达式或者是字符串处理函数来替代(按照 ? 分割字符串)
    private function setUrl(){
        $a = $_SERVER['REQUEST_URI'];
        $c = parse_url($a);        //将url分解成关联数组
        if(isset($c['query'])){
            parse_str($c['query'],$b);
           // var_dump($b);
            $a = $c['path']."?";
        }
        return $a;
    }

    //首页
    private function first(){
        return "<a href='/index.php?page=1'>首页</a>";
    }
    //尾页
    private  function last(){
        return "<a href='".$this->url."page=".$this->pageCount."'>结尾</a>";
    }
    //上一页
    private function pre(){
        if($this->nowPage==0){
            return "<span>上一页</span>...";
        }else{
            return "<a href='".$this->url."page=".($this->nowPage-1)."'>上一页</a>";
        }
    }
    //下一页
    private function next(){
        if($this->nowPage>=$this->pageCount){
            return "...<span>下一页</span>";
        }else{
         return "<a href='".$this->url."page=".($this->nowPage+1)."'>下一页</a>";
        }
    }

    public function showbt(){
        $ss = $this->first();
        $ss .= $this->numLinks();

        $ss .= $this->last();
        $ss .= $this->pre();
        $ss .= $this->next();
        return $ss;  //返回几个底部按钮,切换页面
    }

}
<?php
require_once 'PageList.class.php';


$link = new mysqli('localhost','root','root','db_name');


$sql_count = "select count(*) from table_name"; //查询总数


$sql = "select * from tt<span style="font-family: Arial, Helvetica, sans-serif;">"; //用于分页查询</span>


$resu_count_record = $link->query($sql_count);


$totalNums = mysqli_fetch_array($resu_count_record)[0];//输入总记录数


$pl = new PageList($totalNums,10);


$sql .= $pl->limit;

$reusu = $link ->query($sql);

while($res = mysqli_fetch_array($reusu)){//
    echo mb_convert_encoding($res['id'], 'utf-8','gbk').'--'.mb_convert_encoding($res['name'],'utf-8','gbk').'--'.mb_convert_encoding($res['phone'], 'utf-8','gbk')."<br>";
    //echo $res['id'].'--'.$res['name'].'--'.$res['phone']."<br>";
}


echo $pl->showbt();

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

php数据分页类

  • 2015年06月05日 20:13
  • 6KB
  • 下载

php 分页类,相当智能,好用!

  • 2015年04月15日 09:58
  • 7KB
  • 下载

php做一个简单的分页类

分页类原理及所需变量: 原理的3个变量: 总条数      $total 每月条数    $perpage 当前        $page 原理公式 $cont = ceil($tot...
  • CNYYGJ
  • CNYYGJ
  • 2016年06月29日 19:58
  • 501

PHP 分页类. 多语言.

  • 2015年07月13日 11:32
  • 6KB
  • 下载

PHP 分页 类

  • 2013年02月02日 19:16
  • 3KB
  • 下载

php通用分页类

思路还是比较简单的,传入你需要被分页的地址,返回分页的数据和分页导航条......... 对数据库的操作,比如 主机名,数据库名,数据表名,用户名,密码,编码等可以写入在一个php配置文件里...

php按字数分页类

  • 2011年09月15日 09:31
  • 7KB
  • 下载

PHP分页类简单易用很好

  • 2011年05月11日 13:50
  • 9KB
  • 下载

Php 分页类

[代码] 分页类主体

PHP超强分页类

  • 2012年09月14日 11:16
  • 3KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php分页类
举报原因:
原因补充:

(最多只允许输入30个字)