📜  PHP分页 |设置 3(1)

📅  最后修改于: 2023-12-03 15:33:40.877000             🧑  作者: Mango

PHP分页 | 设置 3

在开发 Web 应用程序时,分页功能是非常常见的需求。通过分页,可以将大量数据划分成多个页面,提高页面加载速度和用户体验。本篇文章将介绍如何使用 PHP 实现分页功能,并且每页显示 3 条数据。

准备工作

在开始编写代码之前,我们需要准备好以下工作:

  • 数据库表格:需要存储的数据表格
  • 连接数据库:使用 PHP PDO 连接数据库
  • 查询数据:使用 SQL 语句查询指定数量的数据
  • 分页实现:使用 PHP 分页算法实现分页功能
数据库表格

首先,我们需要在数据库中创建一个数据表格,以存储需要分页的数据。表格的结构如下:

CREATE TABLE `books` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `author` varchar(255) NOT NULL,
  `description` text NOT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
连接数据库

使用 PDO 连接数据库,代码如下:

try {
    $dbh = new PDO('mysql:host=localhost;dbname=mydatabase', $user, $password);
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}

其中,$user$password 分别为数据库的用户名和密码。

查询数据

使用 SQL 语句查询指定数量的数据,代码如下:

// 查询总记录数
$sql = "SELECT COUNT(*) FROM `books`";
$total_records = $dbh->query($sql)->fetchColumn();

// 每页显示 3 条数据
$limit = 3;

// 计算总页数
$total_pages = ceil($total_records / $limit);

// 获取当前页码
if (!isset($_GET['page'])) {
    $page = 1;
} else {
    $page = $_GET['page'];
}

// 计算当前页面的第一条数据的位置
$start = ($page - 1) * $limit;

// 查询当前页面的数据
$sql = "SELECT * FROM `books` LIMIT $start, $limit";
$stmt = $dbh->query($sql);
$books = $stmt->fetchAll(PDO::FETCH_ASSOC);
分页实现

使用 PHP 分页算法实现分页功能,代码如下:

echo '<ul class="pagination">';

// 上一页
if ($page > 1) {
    echo '<li><a href="?page=' . ($page - 1) . '">上一页</a></li>';
}

// 当前页的前两页
for ($i = $page - 2; $i < $page; $i++) {
    if ($i > 0) {
        echo '<li><a href="?page=' . $i . '">' . $i . '</a></li>';
    }
}

// 当前页
echo '<li class="active"><a href="#">' . $page . '</a></li>';

// 当前页的后两页
for ($i = $page + 1; $i <= $total_pages && $i <= $page + 2; $i++) {
    echo '<li><a href="?page=' . $i . '">' . $i . '</a></li>';
}

// 下一页
if ($page < $total_pages) {
    echo '<li><a href="?page=' . ($page + 1) . '">下一页</a></li>';
}

echo '</ul>';

以上代码将会输出一个分页导航栏,可以让用户进行翻页操作。

总结

本文介绍了如何使用 PHP 实现分页功能,并且每页显示 3 条数据。通过本文的介绍,读者可以掌握分页算法的实现以及如何连接数据库和查询数据。同时,读者也可以根据自己的需要对代码进行修改,以满足不同的分页需求。

参考资料: