当前位置:首页 > PHP

利用php实现分页

2026-02-16 04:42:02PHP

实现分页功能

分页功能通常需要结合数据库查询和前端展示。以下是一个基于PHP和MySQL的分页实现方法:

获取总记录数

计算数据库中符合条件的总记录数,用于确定总页数:

$sql = "SELECT COUNT(*) as total FROM your_table";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$total_records = $row['total'];

计算分页参数

根据当前页码和每页显示数量计算分页参数:

$records_per_page = 10;
$total_pages = ceil($total_records / $records_per_page);

$current_page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
if ($current_page < 1) $current_page = 1;
if ($current_page > $total_pages) $current_page = $total_pages;

$offset = ($current_page - 1) * $records_per_page;

查询当前页数据

使用LIMIT子句获取当前页的数据:

$sql = "SELECT * FROM your_table LIMIT $offset, $records_per_page";
$result = $conn->query($sql);

显示分页导航

生成分页导航链接:

echo '<div class="pagination">';
if ($current_page > 1) {
    echo '<a href="?page='.($current_page-1).'">Previous</a>';
}

for ($i = 1; $i <= $total_pages; $i++) {
    if ($i == $current_page) {
        echo '<span class="current">'.$i.'</span>';
    } else {
        echo '<a href="?page='.$i.'">'.$i.'</a>';
    }
}

if ($current_page < $total_pages) {
    echo '<a href="?page='.($current_page+1).'">Next</a>';
}
echo '</div>';

完整示例代码

<?php
// 数据库连接
$conn = new mysqli("localhost", "username", "password", "database");

// 获取总记录数
$sql = "SELECT COUNT(*) as total FROM products";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$total_records = $row['total'];

// 分页参数
$records_per_page = 5;
$total_pages = ceil($total_records / $records_per_page);

$current_page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
if ($current_page < 1) $current_page = 1;
if ($current_page > $total_pages) $current_page = $total_pages;

$offset = ($current_page - 1) * $records_per_page;

// 获取当前页数据
$sql = "SELECT * FROM products LIMIT $offset, $records_per_page";
$result = $conn->query($sql);

// 显示数据
while ($row = $result->fetch_assoc()) {
    echo "<div>{$row['product_name']}</div>";
}

// 分页导航
echo '<div class="pagination">';
if ($current_page > 1) {
    echo '<a href="?page='.($current_page-1).'">Previous</a>';
}

for ($i = 1; $i <= $total_pages; $i++) {
    if ($i == $current_page) {
        echo '<span class="current">'.$i.'</span>';
    } else {
        echo '<a href="?page='.$i.'">'.$i.'</a>';
    }
}

if ($current_page < $total_pages) {
    echo '<a href="?page='.($current_page+1).'">Next</a>';
}
echo '</div>';

$conn->close();
?>

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

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

// 获取总记录数
$stmt = $conn->prepare("SELECT COUNT(*) as total FROM products");
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
$total_records = $row['total'];

// 获取当前页数据
$stmt = $conn->prepare("SELECT * FROM products LIMIT ?, ?");
$stmt->bind_param("ii", $offset, $records_per_page);
$stmt->execute();
$result = $stmt->get_result();

分页样式建议

可以添加CSS美化分页导航:

利用php实现分页

.pagination {
    margin-top: 20px;
}
.pagination a, .pagination span {
    padding: 8px 16px;
    margin: 0 4px;
    border: 1px solid #ddd;
    text-decoration: none;
    color: #333;
}
.pagination a:hover {
    background-color: #f5f5f5;
}
.pagination .current {
    background-color: #4CAF50;
    color: white;
    border: 1px solid #4CAF50;
}

标签: 分页php
分享给朋友:

相关文章

php实现打印功能

php实现打印功能

PHP实现打印功能的方法 在PHP中实现打印功能可以通过多种方式完成,包括直接输出到浏览器、生成PDF文件、调用打印机接口等。以下是几种常见的方法: 直接输出HTML内容 PHP可以通过echo或p…

vue 实现分页

vue 实现分页

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

php记住密码怎么实现

php记住密码怎么实现

使用Cookie实现记住密码功能 在PHP中,可以通过设置Cookie来记住用户的登录状态。以下是一个简单的实现方式: // 用户登录验证成功后 if ($login_success) {…

php实现上传

php实现上传

PHP 文件上传实现 HTML 表单设置 创建一个包含文件上传字段的 HTML 表单,确保表单的 enctype 属性设置为 multipart/form-data,这是文件上传必需的设置。 <…

js实现分页功能代码

js实现分页功能代码

分页功能实现方法 客户端分页(前端处理数据) 适用于数据量较小且已全部加载到前端的情况。 // 示例数据 const data = Array.from({length: 100}, (_, i)…

php 实现排序

php 实现排序

PHP 实现数组排序的方法 PHP 提供了多种内置函数和方法来实现数组排序,适用于不同的排序需求。以下是一些常见的排序实现方式: 使用 sort() 函数对数组进行升序排序 sort() 函数对数组…