当前位置:首页 > 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实现表格分页代码

<?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样式美化分页

php实现表格分页代码

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

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

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

分页用vue实现

分页用vue实现

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

国外vue实现表格控件

国外vue实现表格控件

以下是国外流行的 Vue 表格控件实现方案及特点,供参考: vue-good-table 基于 Vue 2/3 的轻量级表格组件,支持排序、分页、筛选等功能。 安装方式: npm inst…

vue表格实现复选框

vue表格实现复选框

Vue表格实现复选框的方法 基础实现(使用v-model绑定数组) 在Vue中可以通过v-model绑定数组来实现复选框功能。以下是一个基础示例: <template> <t…

vue 实现分页

vue 实现分页

分页实现方法 在Vue中实现分页功能,可以通过计算属性和方法结合来实现。以下是一个典型的分页实现方式: 模板部分 <template> <div> <…

vue分页实现

vue分页实现

Vue 分页实现方法 基础分页组件实现 创建一个简单的分页组件,包含上一页、下一页和页码按钮。组件接收当前页码、总页数等参数,通过事件通知父组件页码变化。 <template> &…