php分页实现代码


PHP 分页实现代码
以下是一个完整的 PHP 分页实现示例,包含数据库查询和分页逻辑。
数据库连接与查询
<?php
// 数据库连接
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 获取总记录数
$sql = "SELECT COUNT(*) as total FROM your_table";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$total_records = $row['total'];
分页参数设置
// 分页参数
$records_per_page = 10;
$total_pages = ceil($total_records / $records_per_page);
// 当前页码
$current_page = isset($_GET['page']) ? $_GET['page'] : 1;
if ($current_page < 1) $current_page = 1;
if ($current_page > $total_pages) $current_page = $total_pages;
// 计算偏移量
$offset = ($current_page - 1) * $records_per_page;
数据查询
// 查询当前页数据
$sql = "SELECT * FROM your_table LIMIT $offset, $records_per_page";
$result = $conn->query($sql);
显示数据
// 显示数据
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}
} else {
echo "0 results";
}
分页导航
// 分页导航
echo "<div class='pagination'>";
if ($current_page > 1) {
echo "<a href='?page=1'>First</a>";
echo "<a href='?page=".($current_page-1)."'>Previous</a>";
}
for ($i = 1; $i <= $total_pages; $i++) {
if ($i == $current_page) {
echo "<span class='current'>$i</span>";
} else {
echo "<a href='?page=$i'>$i</a>";
}
}
if ($current_page < $total_pages) {
echo "<a href='?page=".($current_page+1)."'>Next</a>";
echo "<a href='?page=$total_pages'>Last</a>";
}
echo "</div>";
$conn->close();
?>
CSS 样式
.pagination {
margin-top: 20px;
}
.pagination a, .pagination span {
padding: 8px 16px;
text-decoration: none;
border: 1px solid #ddd;
margin: 0 4px;
}
.pagination a:hover {
background-color: #f5f5f5;
}
.pagination .current {
background-color: #4CAF50;
color: white;
border: 1px solid #4CAF50;
}
注意事项
- 替换数据库连接信息和表名为实际值
- 考虑添加参数过滤防止SQL注入
- 可根据需求调整每页显示的记录数
- 样式可根据实际项目需求修改
这个实现包含了基本的分页功能,包括数据库查询、分页计算和导航显示。可以根据项目需求进一步扩展和完善。






