Page(一) Page类php 和 调用page类php

来源:互联网 发布:win7网络诊断dns未响应 编辑:程序博客网 时间:2024/05/22 12:10
Page类php

<?php
class Page
{
    //超链接
    protected $url;
    //总条数
    protected $total;
    //总页数
    protected $count;
    //每页显示数
    protected $num;
    //上一页数
    protected $prevNum;
    //下一页数
    protected $nextNum;
    //开始记录数
    protected $startNum;
    //结束记录数
    protected $endNum;
    //首页
    protected $first = '首页';
    //尾页
    protected $last = '尾页';
    //上一页
    protected $up = '上一页';
    //下一页
    protected $down = '下一页';
    //当前页
    protected $page;

    //初始化成员属性

    public function __construct($url , $total , $num = 5)
    {
        $this->url = $url;
        $this->total = $total; //总条数
        $this->num = $num;
        //当前页
        $this->page = isset($_GET['page']) ? $_GET['page'] : 1;
        //求出总页数
        $this->count = $this->getCount();
        //上一页数
        $this->prevNum = $this->getPrev();
        //下一页
        $this->nextNum = $this->getNext();
        //开始记录数
        $this->startNum = $this->getStart();
        //结束记录数
        $this->endNum = $this->getEnd();


    }

    //求出总页数
    protected function getCount()
    {
        return ceil($this->total / $this->num);
    }
    //上一页数
    protected function getPrev()
    {
        if ($this->page < 1) {
            return false;
        } else {
            return $this->page - 1;
        }
    }
    //下一页
    protected function getNext()
    {
        if ($this->page >= $this->count) {
            return false;
        } else {
            return $this->page + 1;
        }
    }

    //开始记录数
    protected function getStart()
    {
        return ($this->page - 1) * $this->num + 1;
    }

    //结束记录数
    protected function getEnd()
    {
        return min($this->page * $this->num , $this->total);
    }

    //获取偏移量
    public function getOffset()
    {
        return ($this->page - 1) * $this->num;
    }

    //获取分页

    //当前是第X页,共X页,从第X条记录到第X条记录,首页,上一页,下一页 尾页

    public function getPage()
    {
        $string = '';
        $string .= '当前是'.$this->page.'页&nbsp;&nbsp;共'.$this->count.'页&nbsp;&nbsp;从第'.$this->startNum.'记录到第'.$this->endNum.'条记录&nbsp;<a href="'.$this->url.'page=1">'.$this->first.'</a>&nbsp;&nbsp;';
        //上一页

        if ($this->prevNum) {
            $string .= '<a href="'.$this->url.'page='.$this->prevNum.'">'.$this->up.'</a>&nbsp;';
        }

        //下一页

        if ($this->nextNum) {
            $string .= '<a href="'.$this->url.'page='.$this->nextNum.'">'.$this->down.'</a>&nbsp;';
        }

        //拼接尾页

        $string .= '<a href="'.$this->url.'page='.$this->count.'">'.$this->last.'</a>';

        return $string;

    }
}

$p = new Page('http://localhost/1606/5/page.php?' , 50);
$p->getPage();



调用page类php

<?php

$link = mysqli_connect('localhost' , 'root' , 'kungezuishuai');

mysqli_set_charset($link , 'utf8');

mysqli_select_db($link , 'bbs');

$sql = 'select count(*) as count from bbs_user';

$aRes = mysqli_query($link , $sql);

$data = mysqli_fetch_assoc($aRes);

//求总数
$count = $data['count'];

include 'page.php';

$page = new Page('http://localhost/1606/5/fy.php?' , $count , 2);
$offset = $page->getOffset();
$sql = "select * from bbs_user limit $offset , 2";
$result = mysqli_query($link , $sql);

if ($result && mysqli_affected_rows($link)) {

    echo '<table width="500" border="1">';
        while($rows = mysqli_fetch_assoc($result)) {
            echo '<tr>';
                echo '<td>'.$rows['id'].'</td>';
                echo '<td>'.$rows['username'].'</td>';
                echo '<td>'.$rows['email'].'</td>';
                echo '<td>'.date('Y-m-d H:i:s' , $rows['ctime']).'</td>';
            echo '</tr>';
        }
    echo '</table>';
}

echo $page->getPage();



































































原创粉丝点击