数据库查询经常涉及到分页显示。
为了方便,我全部写在了一个文件里,具体实现的时候最好将他们分开。
同时也没有什么样式,就是一个简简单单的实现。
1.page_list.php:
<?php
include "conn.php";
// 设置每页显示条数
$pageSize = 2;
// 查询数据库记录总数
$res = mysqli_query(getConn(), "select count(*) from book");
$count = mysqli_fetch_row($res);
$count = $count[0];
// 设置最大页数
$max_page = ceil($count/$pageSize);
// 初始化页数
$page = isset($_GET['page'])?intval($_GET['page']):1;
$page = $page > $max_page ? $max_page : $page;
$page = $page < 1 ? 1 : $page;
// 每次起始查找位置
$lim = ($page - 1)*$pageSize;
// 每次查询从第$lim条开始,查询$pageSize条
$result_ = mysqli_query(getConn(), "select * from book limit {$lim}, {$pageSize}");
$query_result = array();
$i = 0;
// 将结果存放到$query_result
if (mysqli_num_rows($result_) > 0) {
while ($row = mysqli_fetch_assoc($result_)) {
$query_result[$i] = $row;
$i++;
}
}
?>
// 页面显示
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>图书列表</title>
</head>
<body>
<a href="select_limit.php?page=1">首页</a>
<a href="select_limit.php?page=<?php echo ($page - 1) > 0 ? ($page - 1) : 1;?>">上页</a>
<a href="select_limit.php?page=<?php echo ($page + 1) < $max_page ? ($page + 1 ) : $max_page; ?>">下页</a>
<a href="select_limit.php?page=<?php echo $max_page ?>">尾页</a>
<table border = "1">
<tr><td>bookId</td><td>bookName</td><td>bookPrice</td><td>bookCount</td><td>Operation</td></tr>
<?php foreach ($query_result as $it) { ?>
<tr>
<td><?php echo $it['bookid'];$id = $it['bookid']; ?>
</td><td><?php echo $it['bookname'] ?></td>
<td><?php echo $it['bookprice'] ?></td>
<td><?php echo $it['bookcount'] ?></td>
<td><a href="selectById.php?id=<?php echo $id;?>" target="select">修改</a>
<a href="5_10_deleteData.php?id=<?php echo $id;?>">删除</a></td>
</tr>
<?php } ?>
</table>
</body>
</html>
2.conn.php
<?php
// 连接数据库函数
function getConn(){
// 数据库MySQLi
// 创建连接
$conn = mysqli_connect("localhost", "root", "284513", "bookdb");
// 检测连接
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
return $conn;
}
?>