php实现表格分页代码
实现表格分页的基本逻辑
在PHP中实现表格分页功能,通常需要结合数据库查询和前端分页控件。核心逻辑是通过SQL的LIMIT子句控制数据范围,配合页码参数实现分页切换。
数据库查询分页
通过LIMIT offset, count实现分页查询,其中offset是起始位置,count是每页显示的记录数。

$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$perPage = 10; // 每页显示10条记录
$offset = ($page - 1) * $perPage;
$sql = "SELECT * FROM your_table LIMIT {$offset}, {$perPage}";
$result = $conn->query($sql);
显示分页数据
将查询结果渲染为HTML表格:
echo '<table>';
while ($row = $result->fetch_assoc()) {
echo '<tr>';
echo '<td>'.$row['column1'].'</td>';
echo '<td>'.$row['column2'].'</td>';
echo '</tr>';
}
echo '</table>';
计算总页数
需要先获取总记录数以计算总页数:

$totalSql = "SELECT COUNT(*) as total FROM your_table";
$totalResult = $conn->query($totalSql);
$totalRows = $totalResult->fetch_assoc()['total'];
$totalPages = ceil($totalRows / $perPage);
生成分页导航
创建分页导航链接,允许用户切换页码:
echo '<div class="pagination">';
for ($i = 1; $i <= $totalPages; $i++) {
$active = ($i == $page) ? 'active' : '';
echo "<a href='?page={$i}' class='{$active}'>{$i}</a> ";
}
echo '</div>';
完整示例代码
<?php
// 数据库连接
$conn = new mysqli('localhost', 'username', 'password', 'database');
// 分页参数
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$perPage = 10;
$offset = ($page - 1) * $perPage;
// 获取分页数据
$sql = "SELECT * FROM products LIMIT {$offset}, {$perPage}";
$result = $conn->query($sql);
// 显示表格
echo '<table border="1">';
echo '<tr><th>ID</th><th>Name</th><th>Price</th></tr>';
while ($row = $result->fetch_assoc()) {
echo '<tr>';
echo '<td>'.$row['id'].'</td>';
echo '<td>'.$row['name'].'</td>';
echo '<td>'.$row['price'].'</td>';
echo '</tr>';
}
echo '</table>';
// 计算总页数
$totalResult = $conn->query("SELECT COUNT(*) as total FROM products");
$totalRows = $totalResult->fetch_assoc()['total'];
$totalPages = ceil($totalRows / $perPage);
// 分页导航
echo '<div class="pagination">';
for ($i = 1; $i <= $totalPages; $i++) {
$active = ($i == $page) ? 'active' : '';
echo "<a href='?page={$i}' class='{$active}'>{$i}</a> ";
}
echo '</div>';
?>
前端样式建议
为分页导航添加基本CSS样式:
.pagination a {
display: inline-block;
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注入
- 对数据库查询错误进行适当处理
通过以上方法可以实现基本的PHP表格分页功能,可根据实际需求调整每页显示数量和分页导航样式。






