php实现表格分页代码
PHP实现表格分页代码
以下是一个完整的PHP表格分页实现示例,包含数据库查询、分页逻辑和HTML表格渲染。
数据库连接与查询
<?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);
}
$records_per_page = 10;
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$start_from = ($page-1) * $records_per_page;
$sql = "SELECT * FROM your_table LIMIT $start_from, $records_per_page";
$result = $conn->query($sql);
?>
HTML表格渲染
<table border="1">
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr>
<?php
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td>".$row["id"]."</td>";
echo "<td>".$row["name"]."</td>";
echo "<td>".$row["email"]."</td>";
echo "</tr>";
}
} else {
echo "<tr><td colspan='3'>No records found</td></tr>";
}
?>
</table>
分页导航生成

<?php
$sql = "SELECT COUNT(id) AS total FROM your_table";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$total_records = $row['total'];
$total_pages = ceil($total_records / $records_per_page);
echo "<div class='pagination'>";
for ($i=1; $i<=$total_pages; $i++) {
echo "<a href='?page=".$i."' ".($page==$i?"class='active'":"").">".$i."</a> ";
}
echo "</div>";
$conn->close();
?>
优化分页实现
使用预处理语句防止SQL注入
$stmt = $conn->prepare("SELECT * FROM your_table LIMIT ?, ?");
$stmt->bind_param("ii", $start_from, $records_per_page);
$stmt->execute();
$result = $stmt->get_result();
添加CSS样式美化分页

.pagination {
margin-top: 20px;
}
.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;
}
添加上一页和下一页按钮
if($page > 1){
echo "<a href='?page=".($page-1)."'>Previous</a> ";
}
for ($i=1; $i<=$total_pages; $i++) {
echo "<a href='?page=".$i."' ".($page==$i?"class='active'":"").">".$i."</a> ";
}
if($page < $total_pages){
echo "<a href='?page=".($page+1)."'>Next</a> ";
}
高级分页功能
显示当前页码和总页数
echo "<div>Page $page of $total_pages</div>";
限制显示的页码数量
$visible_pages = 5;
$half = floor($visible_pages/2);
$start_page = max(1, $page - $half);
$end_page = min($total_pages, $start_page + $visible_pages - 1);
if($end_page - $start_page + 1 < $visible_pages) {
$start_page = max(1, $end_page - $visible_pages + 1);
}
if($start_page > 1) {
echo "<a href='?page=1'>1</a> ";
if($start_page > 2) echo "... ";
}
for ($i=$start_page; $i<=$end_page; $i++) {
echo "<a href='?page=".$i."' ".($page==$i?"class='active'":"").">".$i."</a> ";
}
if($end_page < $total_pages) {
if($end_page < $total_pages - 1) echo "... ";
echo "<a href='?page=".$total_pages."'>$total_pages</a> ";
}
以上代码实现了一个完整的PHP表格分页系统,包含基本功能和安全考虑,可以根据实际需求进行调整和扩展。






