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

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

相关文章

css好看的表格制作

css好看的表格制作

使用CSS制作美观表格的方法 边框与间距优化 通过border-collapse属性合并边框,避免双边框效果。设置padding增加单元格内边距,提升可读性。 table { border-…

react如何实现分页

react如何实现分页

实现分页的基本思路 在React中实现分页通常需要以下几个核心步骤:管理当前页码状态、计算分页数据、渲染分页控件。以下是一个典型的分页实现方法。 管理分页状态 使用React的useState钩子来…

vue加载实现分页

vue加载实现分页

Vue 实现分页加载的方法 使用 Element UI 的分页组件 安装 Element UI 后,可以直接使用其分页组件。在模板中添加分页组件,并绑定相关事件和数据。 <template&g…

vue实现表格筛选

vue实现表格筛选

实现表格筛选的基本思路 在Vue中实现表格筛选通常涉及以下几个核心步骤:数据绑定、筛选逻辑处理、动态渲染。以下是具体实现方法。 基础数据绑定与表格渲染 定义表格数据和表头结构,使用v-for循环渲染…

vue实现sku表格

vue实现sku表格

Vue实现SKU表格的方法 SKU(Stock Keeping Unit)表格常用于电商平台展示商品的多属性组合,例如颜色、尺寸等。以下是基于Vue的实现方法: 数据结构设计 SKU的核心是属性组合…

vue实现表格序号

vue实现表格序号

实现表格序号的常见方法 在Vue中为表格添加序号列可以通过多种方式实现,以下是几种典型方案: 使用v-for索引 <template> <table> <…