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
收藏随意^^请保留教程地址.