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

php验证码实现

php验证码实现

验证码实现方法 在PHP中实现验证码功能通常涉及生成随机字符串或数字,将其转换为图像,并通过会话(Session)进行验证。以下是几种常见的实现方式: 使用GD库生成图像验证码 GD库是PHP内置的…

php搜索功能实现

php搜索功能实现

实现基本的PHP搜索功能 使用MySQL数据库和PHP实现简单的关键词搜索功能。需要确保数据库中有可供搜索的表和数据。 // 连接数据库 $conn = new mysqli('localhost'…

php实现博客

php实现博客

使用PHP实现博客系统 数据库设计 创建数据库表存储博客文章和用户信息。常见的表包括posts(文章)和users(用户)。 CREATE TABLE users ( id INT AUTO…

php实现一个

php实现一个

PHP 实现一个简单的计算器 创建一个基本的计算器,支持加、减、乘、除运算。以下是一个完整的实现代码示例: <?php $result = ""; if ($_SERVER["REQUES…

php数组实现

php数组实现

PHP 数组的基本实现 PHP 数组是一种非常灵活的数据结构,可以存储多个值,并且支持多种类型的键(整数或字符串)。PHP 数组实际上是有序映射(ordered map),可以看作是列表(vector…