制作数据表的分页
1、要求实现当前页码高亮。
2、利用bootstrap框架美化。
3、当首页时禁用首页按钮、上一页按钮。当尾页时禁用尾页按钮、下一页按钮。



<?php
try{
$num=5;//每页数量
$p=1; //初始化当前页码
$p=isset($_GET['p'])?$_GET['p']:$p;//获取用户按钮页码
//设置信息,数据库登入账号密码
$dsn="mysql:host=localhost;dbname=demo";
$userName='root';
$password='root';
//连接数据库
$pdo=new PDO($dsn,$userName,$password);
//设置预处理语句
$sql="SELECT * FROM user1 ";
//执行prepare()方法创建PDOStatement对象
$pdo_stmt=$pdo->prepare($sql);
if ($pdo_stmt==true) {
//查询数据
$res = $pdo_stmt->execute();
//计算分页总页数
$pageTotal = ceil($pdo_stmt->rowCount() / $num);
// echo '<p>'.$pageTotal.'hahh</p>';
$offset = ($p - 1) * $num;
//设置预处理语句
$sql = "SELECT * FROM user1 LIMIT :offset,:num";
//执行prepare()方法创建PDOStatement对象
$pdo_stmt = $pdo->prepare($sql);
//绑定offset与num
$pdo_stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
$pdo_stmt->bindParam(':num', $num, PDO::PARAM_INT);
//查询数据
$res = $pdo_stmt->execute();
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.css">
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="http://apps.bdimg.com/libs/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<title>用户信息表</title>
</head>
<body>
<!--利用bootstrap 生成表格 以及分页-->
<div class="container">
<!-- 生成表格-->
<div class="row">
<div class="col-sm-12">
<div class="table-responsive c">
<table class="table table-hover table-bordered active text-center">
<caption><h3 align='center'>用户信息表</h3></caption>
<tr>
<td>id</td>
<td>姓名</td>
<td>邮箱</td>
<td>密码</td>
</tr>
<!-- 输出表格内容-->
<?php
if ($res==true){
while($row=$pdo_stmt->fetch()){
echo "<tr>";
echo '<td>'.$row['id'].'</td><td>'.$row['name'].'</td><td>'.$row['email'].'</td><td>'.$row['password'].'</td>';
echo "</tr>";
}
}
?>
</table>
</div>
</div>
</div>
<!-- 生成分页-->
<div class="row">
<div class="col-sm-12 text-center">
<nav aria-label="Page navigation ">
<ul class="pagination">
<!-- 首页 当前为首页时禁用-->
<li class=<?php echo($p==1?'disabled':'') ?>>
<a href="<?php echo($p==1?'javascript:void(0);':'http://www.day.com/day30/page.php?p=1')?>" aria-label="Previous">
首页
</a>
</li>
<!-- 上一页按钮 当前为首页时禁用-->
<li class=<?php echo($p==1?'disabled':'') ?>>
<a href="<?php echo($p==1?'javascript:void(0);':"http://www.day.com/day30/page.php?p=".($p-1))?>" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
<!-- 循环生成页码按钮-->
<?php
for ($i=1;$i<=$pageTotal;$i++) {
if($i==$p){
echo '<li><a href="http://www.day.com/day30/page.php?p=' . $i . '" >' . $i . '</a></li>';
}else {
echo '<li><a href="http://www.day.com/day30/page.php?p=' . $i . '" >' . $i . '</a></li>';
}
}
?>
<!-- 下一页按钮 当前为尾页时禁用-->
<li class=<?php echo($p==$pageTotal?'disabled':'') ?>>
<a href="<?php echo($p==$pageTotal?'javascript:void(0);':"http://www.day.com/day30/page.php?p=".($p+1))?>" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
<!-- 尾页 当前为尾页时禁用-->
<li class=<?php echo($p==$pageTotal ?'disabled':'') ?>>
<a href="<?php echo($p==$pageTotal?'javascript:void(0);':'http://www.day.com/day30/page.php?p='.$pageTotal)?>" aria-label="Previous">
尾页
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</body>
</html>
<?php
//验证出错信息
}catch(PDOException $e){
echo $e->getMessage();
exit();
}?>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号