<?php
header("content-type:text/html;charset=utf-8");
//连接数据库
require_once("conn.php");
//定义分页可能需要的参数
$pagesize=3; //每页显示数
$start_row;//定义每页的首条数据在查询中的起始位置
$pages;//总页数
$page;//当前页
//构建查询语句获取总记录数和计算总页数
$sql="select * from student order by id desc";
$result=mysql_query($sql);
$records=mysql_num_rows($result);
echo "总记录数:".$records;
$page=isset($_GET['page'])?$_GET['page']:1;
$start_row=($page-1)*$pagesize;
$pages=ceil($records/$pagesize);
$sql="select * from student order by id asc limit {$start_row},{$pagesize}";
$result=mysql_query($sql);
echo "<br>总页数:".$pages;
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>学生管理中心</title>
<style>
tr>td>a:link,tr>td>a:visited{
padding:5px;
color:blue;
text-decoration:none;
}
td>span{
color:black;
}
span>a{
color:silver;
}
</style>
</head>
<body>
<div style='align:center;'></div>
<table border='1' width='500' align='center' rules='all'>
<caption><h1>员工信息中心</h1></caption>
<tr align="center">
<th>编号</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>学历</th>
<th>工资</th>
<th>奖金</th>
<th>籍贯</th>
</tr>
<?php
while($arr=mysql_fetch_assoc($result))
{
?>
<tr align="center">
<td><?php echo $arr['id'] ?></td>
<td><?php echo $arr['name'] ?></td>
<td><?php echo $arr['sex'] ?></td>
<td><?php echo $arr['age'] ?></td>
<td><?php echo $arr['edu'] ?></td>
<td><?php echo $arr['salary'] ?></td>
<td><?php echo $arr['bonus'] ?></td>
<td><?php echo $arr['city'] ?></td>
</tr>
<?php
} ?>
<?php
echo "<tr align='center'>";
echo "<td colspan='8'>";
//如果总页数小于9页,则正常显示吧
//只考虑第一页和最后一页的特殊情况,中间一般显示,当前页没有样式
if($pages<=9)
{
$start=1;
$next=$page+1;
$forward=$page-1;
$end=$pages;
if($page==1)
{
//当前页是第1页的话,“上一页”不可用
echo "<span><a style='disabled'>上一页</span>";
for($i=1;$i<=$pages;$i++)
{
if($i==$page) //当前页显示为无链接标记
{echo "<span>$i</span>";}
else
{
echo "<a href=?page=$i>$i</a>";//正常显示其他页面的链接
}
}
echo "<a href=?page=$next>下一页</a>";
}
//当前页是最终页的话,“下一页”不可用
elseif($page==$pages)
{
$forward=$page-1;
echo "<a href=?page=$forward>上一页</a>";
for($i=1;$i<=$pages;$i++)
{
if($i==$page) //当前页显示为无链接标记
{echo "<span>$i</span>";}
else
{echo "<a href=?page=$i>$i</a>";}
}
echo "<span><a style='disabled'>下一页</span>";
//当前页是最后一页的话,“下一页”不可用
}
else{
echo "<a href=?page=$forward>上一页</a>";
for($i=1;$i<=$pages;$i++)
{
if($i==$page) //当前页显示为无链接标记
{echo "<span>$i</span>";}
else
{echo "<a href=?page=$i>$i</a>";}
}
echo "<a href=?page=$next>下一页</a>";
}}
//以下处理常规博客10页以上的情况
if($pages>9)
{
//如果是当前页是第一页
if($page==1)
{
//当前页是第1页的话,“上一页”不可用
echo "<span><a style='disabled'>上一页</span>";
$start=1;
$next=$page+1;
$end=$start+3;
for($i=$start;$i<=$end;$i++)
{
if($i==1) //当前页显示为无链接标记
{echo "<span>$i</span>";}
else{
echo "<a href=?page=$i>$i</a>";}
}
echo "<span>...</span>";
echo "<a href=?page=$pages>$pages</a>";
echo "<a href=?page=$next>下一页</a>";
}
//如果当前页不是第1页且页码小于5
if($page!=1&&$page<4)
{
$start=1;
$next=$page+1;
$end=4; //第4页为前节点,注意哦
$forward=$page-1;
echo "<a href=?page=$forward>上一页</a>";
for($i=$start;$i<=$end;$i++)
{
//如果是当前页为无链接标记
if($page==$i) {echo "<span>$i</span>";}
else
{echo "<a href=?page=$i>$i</a>";}
}
echo "<span>...</span>";
echo "<a href=?page=$pages>$pages</a>";
echo "<a href=?page=$next>下一页</a>";
}
//如果当前页大于4且小于总页数-某个数(中间页码的考虑)
if($page>=4&&$page<$pages-2)
{
$start=$page-1;
$end=$page+1;
$forward=$page-1;
$next=$page+1;
echo "<a href=?page=$forward>上一页</a>";
echo "<a href=?page=1>1</a>";
echo "<span>...</span>";
for($i=$start;$i<=$end;$i++)
{
//如果是当前页为无链接标记
if($page==$i) {echo "<span>$i</span>";}
else
{echo "<a href=?page=$i>$i</a>";}
}
echo "<span>...</span>";
echo "<a href=?page=$pages>$pages</a>";
echo "<a href=?page=$next>下一页</a>";
}
//当前页不是最后一页且为最后四页
if($page!=$pages&&$page>=$pages-2)
{
$start=$pages-3;//倒数第4页为前节点,注意哦
$forward=$page-1;
$next=$page+1;
$end=$pages;
echo "<a href=?page=$forward>上一页</a>";
echo "<a href=?page=1>1</a>";
echo "<span>...</span>";
for($i=$start;$i<=$end;$i++)
{
//如果是当前页为无链接标记
if($page==$i) {echo "<span>$i</span>";}
else
{echo "<a href=?page=$i>$i</a>";}
}
echo "<a href=?page=$next>下一页</a>";
}
//当前页是最后一页
if($page==$pages)
{
$forward=$page-1;
echo "<a href=?page=$forward>上一页</a>";
echo "<a href=?page=1>1</a>";
echo "<span>...</span>";
$start=$page-3;
$end=$page;
for($i=$start;$i<=$end;$i++)
{
if($i==$page) //当前页显示为无链接标记
{echo "<span>$i</span>";}
else{
echo "<a href=?page=$i>$i</a>";}
}
//当前页是最后一页的话,“下一页”不可用
echo "<span><a style='disabled'>下一页</span>";
}
}
echo "</td>";
echo "</tr>";
?>
</table>
</body>
</html>
效果1为:十页以上效果
十页以下效果: