在PHP中实现分页查询,通常需要以下几个步骤:
以下是一个简单的示例,展示了如何使用PHP和MySQL实现分页查询:
<?php
// 数据库连接信息
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 设置字符集为utf8,防止中文乱码
$conn->set_charset("utf8");
// 当前页数,默认为1
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
// 每页显示的记录数,默认为10
$limit = 10;
// 计算偏移量
$offset = ($page - 1) * $limit;
// 计算总记录数
$sql_count = "SELECT COUNT(*) FROM myTable";
$result_count = $conn->query($sql_count);
$row_count = $result_count->fetch_row()[0];
// 计算总页数
$total_pages = ceil($row_count / $limit);
// 编写分页查询语句
$sql_page = "SELECT * FROM myTable LIMIT $offset, $limit";
$result_page = $conn->query($sql_page);
// 处理结果
if ($result_page->num_rows > 0) {
while($row = $result_page->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}
} else {
echo "0 结果";
}
// 分页导航
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='?page=$i'>$i</a> ";
}
// 关闭连接
$conn->close();
?>
在这个示例中,我们首先连接到MySQL数据库,然后根据当前页数和每页显示的记录数计算偏移量。接着,我们编写一个SQL查询语句,使用LIMIT
子句来获取当前页的数据。最后,我们处理查询结果并显示出来,同时提供一个分页导航,允许用户点击页码来切换不同的页面。