<br><html>
<head>
<title>PHP分页</title>
</head>
<body>
<?
$gPageSize= 50; //每页显示的记录数
$hostname = "localhost"; //mysql Server
$dbuser = "root"; //用户名
$dbpasswd = ""; //密码
//连接数据库
$id = mysql_connect($hostname,$dbuser,$dbpasswd) or die("无法连接数据库服务器!");
//选择数据库
$db = mysql_select_db("infodb",$id) or die("无法连接数据库!");
//以Customers表为例,构建查询字符串
$query = "select * from ipinfo";
//执行查询语句
$rresult = mysql_query($query) or die("无法执行SQL:$query");
//$page变量标示当前显示的页
if(!isset($page)) $page=1;
if($page==0) $page=1;
//得到当前查询到的纪录数 $nNumRows
if(($nNumRows= mysql_num_rows($rresult))<=0)
{
echo "<p align=center>没有纪录";
exit;
};
//得到最大页码数MaxPage
$MaxPage = (int)ceil($nNumRows/$gPageSize);
if((int)$page > $MaxPage)
$page=$maxPage;
?>
<table align="center" width="80%" border=0> <tr><td><? echo "<font size=2>第
$page 页,共 $MaxPage 页</font>";?></td><td></td></tr></table>
<table align="center" width="80%" border="1" cellspacing="0" cellpadding="4" bordercolorlight="#CC9966" bgcolor="#00F2EE" bordercolordark="#FFFFFF" class="LZH">
<tr bgcolor="#F7F2ff" style="font-size:14.8px;font-weight:bold">
<?
//显示表格头
for($iCnt = 0; $iCnt < mysql_num_fields($rresult); $iCnt++)
{
echo "<td>".mysql_field_name($rresult,$iCnt)."</td>" ;
}
?>
</tr>
<?
//根据偏移量($page - 1)*$gPageSize,运用mysql_data_seek函数得到要显示的页面
if( mysql_data_seek($rresult,($page-1)*$gPageSize) )
{
$i=0;
//循环显示当前纪录集
for($i;$i<$gPageSize;$i++)
{
echo "<tr style=/"font-size:12px/">";
//得到当前纪录,填充到数组$arr;
$arr= mysql_fetch_row($rresult);
if($arr)
{
//循环显示当前纪录的所有字段值
for($nOffSet = 0;$nOffSet < count($arr);$nOffSet++)
{
echo "<td>".$arr[$nOffSet]."</td>";
}
}
echo "</tr>";
}
}
?>
</table>
<br>
<hr size=1 width=80%>
<div align=center style="font-size:12px">
<?
//首页和上一页的链接
if( $nNumRows>1 && $page>1)
{
$prevPage=$page-1;
echo " <a href=$PHP_SELF?page=1>首页</a> ";
echo " <a href=$PHP_SELF?page=$prevPage >上一页</a> ";
}
//下一页和末页的链接
if( $page>=1 && $page<$MaxPage)
{
$nextPage= $page+1;
echo " <a href=$PHP_SELF?page=$nextPage >下一页</a> ";
echo " <a href=$PHP_SELF?page=$MaxPage >末页</a> ";
}
?>
</div>
</body>
</html>