php分页实现代码
PHP 分页实现代码
分页功能是 Web 开发中常见的需求,以下是一个简单的 PHP 分页实现代码示例,适用于 MySQL 数据库。
数据库连接配置
确保已建立数据库连接,以下是一个简单的连接示例:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
?>
分页逻辑实现
以下代码展示了如何从数据库中获取数据并实现分页:
<?php
// 每页显示的记录数
$records_per_page = 10;
// 获取当前页码
if (isset($_GET['page'])) {
$page = $_GET['page'];
} else {
$page = 1;
}
// 计算起始记录
$start_from = ($page - 1) * $records_per_page;
// 查询总记录数
$sql_total = "SELECT COUNT(*) as total FROM your_table";
$result_total = $conn->query($sql_total);
$row_total = $result_total->fetch_assoc();
$total_records = $row_total['total'];
// 计算总页数
$total_pages = ceil($total_records / $records_per_page);
// 查询当前页数据
$sql = "SELECT * FROM your_table LIMIT $start_from, $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";
}
// 分页链接
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='index.php?page=".$i."'>".$i."</a> ";
}
$conn->close();
?>
优化分页样式
可以添加 CSS 样式美化分页链接:
<style>
.pagination a {
color: black;
padding: 8px 16px;
text-decoration: none;
border: 1px solid #ddd;
}
.pagination a.active {
background-color: #4CAF50;
color: white;
border: 1px solid #4CAF50;
}
.pagination a:hover:not(.active) {
background-color: #ddd;
}
</style>
<div class="pagination">
<?php
for ($i = 1; $i <= $total_pages; $i++) {
$class = ($page == $i) ? "active" : "";
echo "<a class='$class' href='index.php?page=".$i."'>".$i."</a> ";
}
?>
</div>
使用预处理语句防止 SQL 注入
为了安全性,建议使用预处理语句:
$stmt = $conn->prepare("SELECT * FROM your_table LIMIT ?, ?");
$stmt->bind_param("ii", $start_from, $records_per_page);
$stmt->execute();
$result = $stmt->get_result();
这个实现包含了基本的分页功能,可以根据实际需求进行调整和扩展。







