当前位置:首页 > PHP

php分页代码实现

2026-04-03 08:01:44PHP

基本分页实现

使用PHP和MySQL实现分页功能,需要计算总记录数、每页显示的记录数以及当前页码。

<?php
// 数据库连接
$conn = new mysqli('localhost', 'username', 'password', 'database');
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 每页显示记录数
$perPage = 10;

// 获取当前页码
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$start = ($page - 1) * $perPage;

// 查询总记录数
$totalQuery = "SELECT COUNT(*) as total FROM your_table";
$totalResult = $conn->query($totalQuery);
$totalRow = $totalResult->fetch_assoc();
$totalRecords = $totalRow['total'];

// 计算总页数
$totalPages = ceil($totalRecords / $perPage);

// 查询当前页数据
$query = "SELECT * FROM your_table LIMIT $start, $perPage";
$result = $conn->query($query);
?>

分页数据显示

循环显示查询到的数据:

php分页代码实现

<table>
    <tr>
        <th>ID</th>
        <th>名称</th>
    </tr>
    <?php while($row = $result->fetch_assoc()): ?>
    <tr>
        <td><?php echo $row['id']; ?></td>
        <td><?php echo $row['name']; ?></td>
    </tr>
    <?php endwhile; ?>
</table>

分页导航生成

创建分页导航链接:

<div class="pagination">
    <?php if($page > 1): ?>
        <a href="?page=1">首页</a>
        <a href="?page=<?php echo $page - 1; ?>">上一页</a>
    <?php endif; ?>

    <?php for($i = 1; $i <= $totalPages; $i++): ?>
        <a href="?page=<?php echo $i; ?>" <?php if($i == $page) echo 'class="active"'; ?>><?php echo $i; ?></a>
    <?php endfor; ?>

    <?php if($page < $totalPages): ?>
        <a href="?page=<?php echo $page + 1; ?>">下一页</a>
        <a href="?page=<?php echo $totalPages; ?>">末页</a>
    <?php endif; ?>
</div>

使用预处理语句的安全版本

为防止SQL注入,建议使用预处理语句:

php分页代码实现

<?php
// 使用预处理语句查询数据
$stmt = $conn->prepare("SELECT * FROM your_table LIMIT ?, ?");
$stmt->bind_param("ii", $start, $perPage);
$stmt->execute();
$result = $stmt->get_result();
?>

样式美化建议

为分页导航添加基本CSS样式:

.pagination {
    margin-top: 20px;
}
.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;
}

封装为函数

将分页逻辑封装为可重用函数:

function getPaginationData($conn, $table, $page = 1, $perPage = 10) {
    $start = ($page - 1) * $perPage;

    // 获取总记录数
    $totalQuery = "SELECT COUNT(*) as total FROM $table";
    $totalResult = $conn->query($totalQuery);
    $totalRow = $totalResult->fetch_assoc();
    $totalRecords = $totalRow['total'];
    $totalPages = ceil($totalRecords / $perPage);

    // 获取当前页数据
    $query = "SELECT * FROM $table LIMIT $start, $perPage";
    $result = $conn->query($query);

    return [
        'data' => $result,
        'totalPages' => $totalPages,
        'currentPage' => $page
    ];
}

标签: 分页代码
分享给朋友:

相关文章

php实现分页

php实现分页

PHP实现分页的基本方法 使用原生PHP实现分页功能需要结合数据库查询和HTML展示。以下是核心实现步骤: 数据库查询与分页逻辑 // 连接数据库 $conn = new mysqli('loca…

css网页制作代码

css网页制作代码

CSS网页制作基础代码 以下是一些常用的CSS代码片段,可用于网页制作的基本样式设置: 全局样式重置 * { margin: 0; padding: 0; box-sizing: bo…

php实现分页

php实现分页

PHP实现分页的基本方法 使用LIMIT和OFFSET进行数据库查询分页。通过计算当前页码和每页显示数量,动态生成SQL语句。 $page = isset($_GET['page']) ? (int…

vue代码核心实现

vue代码核心实现

Vue 核心实现原理 Vue.js 的核心实现主要包括响应式系统、虚拟 DOM、模板编译和组件化机制。以下是关键实现要点: 响应式系统 通过 Object.defineProperty(Vue 2)…

如何实现分页vue

如何实现分页vue

使用 v-pagination 组件(Vuetify) 如果项目使用 Vuetify,可以直接使用内置的 v-pagination 组件。该组件提供了分页功能,支持自定义样式和事件。 <tem…

vue搜索分页实现

vue搜索分页实现

Vue 搜索分页实现方法 基本思路 搜索分页通常需要结合后端API,前端通过Vue组件实现搜索框、分页器和数据列表的联动。核心逻辑包括:监听搜索输入变化、分页参数变化,触发数据请求并更新视图。 实现…