首页 > php代码 > php经典分页类

php经典分页类

<?php
class db {
    public $conn, $db, $table, $user, $host, $unm, $pwd;
    public $res;
    public $char;
    public $linkType;
    function __construct($linkType = false, $char = "gb2312") {
        $this->linkType = $linkType; //设定连接类型
        $this->char = $char; //设定连接校对字符
        $this->db = DB;
        $this->user = USER;
        $this->host = HOST;
        $this->unm = UNM;
        $this->pwd = PWD;
        if ($this->linkType) {
            $this->conn = mysql_pconnect($this->host, $this->unm, $this->pwd) or die("Database connection failure");
        } else {
            $this->conn = mysql_connect($this->host, $this->unm, $this->pwd) or die("Database connection failure");
        }
        mysql_select_db($this->db);
        mysql_query("set names " . $this->char);
    }
    function query($sql, $type = "true") {
        //$type:默认的操作。 指代select操作
        $this->res = mysql_query($sql) or die("SQL Statement error !Please check it again");
        $row = $type ? mysql_num_rows($this->res) : mysql_affected_rows();
        $result["res"] = $this->res;
        $result["row"] = $row;
        return $result;
    }
    //fetch()方法:获取所有的记录,并写入数组
    function fetch($sql) {
        $res = self::query($sql);
        while ($rs = mysql_fetch_array($res["res"])) {
            $result[] = $rs;
        }
        return $result;
    }
    //获取下一条记录
    function fetchNext($filed, $currenID, $table) {
        $sql = "select * from $table where $filed>$currenID limit 0,1 ";
        return self::fetch($sql);
    }
    //获取前一条记录
    function fetchPre($filed, $currenID, $table) {
        $sql = "select * from $table where $filed<$currenID limit 0,1 ";
        return self::fetch($sql);
    }
}
class page extends db {
    public $currentPage, $totalRecord, $totalPage, $pageSize;
    public $start;
    public $flag;
    public $sql;
    function __construct($sql, $pagesize = 5, $flag = "page") {
        $this->sql = $sql;
        $this->pageSize = $pagesize;
        $this->flag = $flag; //设定翻页链接标识符
        $row = parent::query($sql);
        $this->totalRecord = $row["row"];
        $this->totalPage = ceil($this->totalRecord / $this->pageSize);
        $page = $_REQUEST[$this->flag];
        if ($page < 0 || $page == "") {
            $this->currentPage = 1;
        } else {
            $page > $this->totalPage ? $this->currentPage = $this->totalPage : $this->currentPage = $page;
        }
        $this->start = ($this->currentPage - 1) * $this->pageSize;
    }
    //显示分页列表
    function show($page = 10) {
        $str.= '<div class="pages_btns"><div class="pages">';
        $str.= "<em> " . $this->totalRecord . " </em>";
        $pre = $this->currentPage - 1;
        if ($pre != 0) {
            $str.= '<a href=?' . $this->flag . '=' . $pre . ' class=next><<</a>';
        }
        if ($this->currentPage >= $page) {
            if ($this->totalPage - $this->currentPage < 10) {
                $start = $this->currentPage - ($this->currentPage % 10);
                $end = $this->totalPage;
            } else {
                $start = $this->currentPage - 2;
                $end = $start + $page - 1;
            }
        } else {
            $start = 1;
            $end = 10;
        }
        for ($i = $start; $i <= $end; $i++) {
            if ($i == $this->currentPage) {
                $str.= "<strong>" . $i . "</strong>";
            } else {
                $str.= "<a href=?" . $this->flag . "=$i>$i</a>";
            }
        }
        $next = $this->currentPage + 1;
        $str.= '<a href=?' . $this->flag . '=' . $next . ' class=next>>></a>';
        $str.= "<a href=?" . $this->flag . "=" . $this->totalPage . " class=last>..." . $this->totalPage . "</a>";
        $str.= "<kbd><input type='text' name='custompage' size='3' onkeydown="if (event . keyCode == 13) {
            window . location = '{$_SERVER['PHP_SELF']}?{$this->flag}=' + this . value;
            return false;
        }
        " /></kbd>";
        $str.= "</div></div>";
        return $str;
    }
}
?>
<?php
define("HOST", "localhost");
define("UNM", "root");
define("PWD", "root");
define("DB", "test");
require_once ('db.class.php');
$db = new db();
$sql = "select * from yy";
$page = new page($sql, 10);
$sql.= " limit $page->start,$page->pageSize";
$rs = $db->fetch($sql);
?>

<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#FF0000">

  <tr>

    <td height="25" bgcolor="#FFFFFF">ID</td>

    <td bgcolor="#FFFFFF">UNM</td>

  </tr>

  <?php

for ($i = 0; $i < count($rs); $i++) {

?>

  <tr>

    <td height="25" bgcolor="#FFFFFF"><?php echo $rs[$i][0] ?></td>

    <td bgcolor="#FFFFFF"><?php echo $rs[$i][1] ?></td>

  </tr>

  <?php

}

?>

  <tr>

    <td height="25" colspan="2" bgcolor="#FFFFFF"><?php echo $page->show() ?></td>

  </tr>

</table>


本文链接:http://www.phprm.com/code/530daf04d798b98c6aebae389abebd2a.html

收藏随意^^请保留教程地址.

标签:none

发表留言