当前位置:首页 > PHP

php实现表格分页代码

2026-01-29 03:40:13PHP

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>";

限制显示的页码数量

php实现表格分页代码

$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表格分页系统,包含基本功能和安全考虑,可以根据实际需求进行调整和扩展。

标签: 分页表格
分享给朋友:

相关文章

vue实现后台分页

vue实现后台分页

实现后台分页的方法 在Vue中实现后台分页通常需要结合前端和后端逻辑,后端负责处理数据分页,前端负责展示分页数据和交互。以下是具体实现方法: 后端API设计 后端需要提供支持分页的API接口,通常包…

分页用vue实现

分页用vue实现

分页用 Vue 实现 在 Vue 中实现分页功能通常需要结合数据管理和 UI 组件。以下是几种常见的方法: 使用 Vue 组件库的分页组件 许多 Vue UI 组件库(如 Element UI、Va…

vue实现重置表格数据

vue实现重置表格数据

重置表格数据的方法 在Vue中重置表格数据通常涉及清空或重新初始化数据绑定的数组或对象。以下是几种常见实现方式: 直接重置数据源 对于基于数组的表格数据,可以直接将数据数组重置为空或初始值:…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

php实现分页功能

php实现分页功能

PHP实现分页功能的方法 数据库查询与分页逻辑 使用SQL的LIMIT和OFFSET实现分页。假设每页显示10条数据,当前页码为$page: $perPage = 10; $page = isset…

php实现的分页

php实现的分页

PHP 实现分页的方法 基本分页逻辑 分页的核心在于计算总页数、当前页码以及数据偏移量。假设每页显示 10 条数据: $current_page = isset($_GET['page']) ? (…