php分页代码实现
PHP分页代码实现
分页功能是Web开发中常见的需求,以下是一个基本的PHP分页实现方法,适用于MySQL数据库。
数据库连接与查询
建立数据库连接并获取总记录数:
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";
$conn = new mysqli($servername, $username, $password, $dbname);
$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;
$offset = ($current_page - 1) * $records_per_page;
数据查询
获取当前页数据:

$sql = "SELECT * FROM your_table LIMIT $offset, $records_per_page";
$result = $conn->query($sql);
显示分页导航
生成分页链接:
echo "<div class='pagination'>";
for ($i = 1; $i <= $total_pages; $i++) {
$active = ($i == $current_page) ? "active" : "";
echo "<a href='?page=$i' class='$active'>$i</a> ";
}
echo "</div>";
完整示例
将以上代码整合:

// 数据库连接
$conn = new mysqli("localhost", "username", "password", "database");
// 获取总记录数
$count_result = $conn->query("SELECT COUNT(*) as total FROM your_table");
$total_records = $count_result->fetch_assoc()['total'];
// 分页设置
$per_page = 10;
$total_pages = ceil($total_records / $per_page);
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$offset = ($page - 1) * $per_page;
// 获取数据
$result = $conn->query("SELECT * FROM your_table LIMIT $offset, $per_page");
// 显示数据
while ($row = $result->fetch_assoc()) {
echo $row['column_name']."<br>";
}
// 分页导航
echo "<div class='pagination'>";
for ($i = 1; $i <= $total_pages; $i++) {
$active = ($i == $page) ? "active" : "";
echo "<a href='?page=$i' class='$active'>$i</a> ";
}
echo "</div>";
样式建议
添加基本CSS样式:
.pagination a {
padding: 8px 16px;
text-decoration: none;
border: 1px solid #ddd;
margin: 0 4px;
}
.pagination a.active {
background-color: #4CAF50;
color: white;
border: 1px solid #4CAF50;
}
.pagination a:hover:not(.active) {
background-color: #ddd;
}
安全注意事项
防止SQL注入:
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
if ($page < 1) $page = 1;
if ($page > $total_pages) $page = $total_pages;
高级分页功能
添加上一页/下一页按钮:
if ($page > 1) {
echo "<a href='?page=".($page - 1)."'>Previous</a> ";
}
if ($page < $total_pages) {
echo "<a href='?page=".($page + 1)."'>Next</a> ";
}
此实现提供了基本的分页功能,可根据实际需求进行调整和扩展。






