PHP 分页
什么是分页?
PHP 分页是指将大型数据集分割成更小、更易于管理的部分(称为“页”)的过程。它通常用于 Web 应用程序中,以便每页显示有限数量的记录或结果,从而使用户能够轻松浏览数据。
处理大型数据集时,分页至关重要,因为在一页上显示所有记录会导致性能问题和用户界面过于复杂。通过实现分页,您可以改善用户体验并优化应用程序的性能。
PHP 分页程序
在您的工作目录中创建一个新的 PHP 文件,并使用您想要的名称保存它。
这里我们使用包含 121 条记录的 studentdata 表,该表位于本地主机数据库中。
示例
这是一个在 PHP 中实现分页的示例,用于从数据库中每页显示 10 条学生数据记录。
<!DOCTYPE html>
<html>
<head>
<style>
/* Grid styles */
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
margin-bottom: 20px;
}
.grid-item {
background-color: #f2f2f2;
padding: 10px;
text-align: center;
}
/* Table styles */
table {
border-collapse: collapse;
width: 100%;
}
th, td {
padding: 8px;
text-align: left;
border-bottom: 1px solid #ddd;
}
th {
background-color: #4CAF50;
color: white;
}
/* Pagination styles */
.pagination {
display: inline-block;
}
.pagination a {
color: black;
float: left;
padding: 8px 16px;
text-decoration: none;
border: 1px solid #ddd;
}
.pagination a.active {
background-color: #4CAF50;
color: white;
border: 1px solid #4CAF50;
}
.pagination a:hover:not(.active) {
background-color: #ddd;
}
</style>
</head>
<body>
<?php
// Database connection details
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "assignments";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// Number of records per page
$recordsPerPage = 10;
// Current page number
if (isset($_GET['page'])) {
$currentPage = $_GET['page'];
} else {
$currentPage = 1;
}
// Calculate the starting record index
$startFrom = ($currentPage - 1) * $recordsPerPage;
// Fetch student data with pagination
$sql = "SELECT * FROM studentdata LIMIT $startFrom, $recordsPerPage";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// Display student data
echo "<div class='grid-container'>";
echo "<div class='grid-item'><strong>ID</strong><
/div>";
echo "<div class='grid-item'><strong>Name</strong><
/div>";
echo "<div class='grid-item'><strong>Age</strong><
/div>";
while ($row = $result->fetch_assoc()) {
echo "<div class='grid-item'>" . $row["id"] . "</div>";
echo "<div class='grid-item'>" . $row["name"] . "</div>";
echo "<div class='grid-item'>" . $row["age"] . "</div>";
}
echo "</div>";
} else {
echo "No records found.";
}
// Pagination links
$sql = "SELECT COUNT(*) AS total FROM studentdata";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$totalRecords = $row["total"];
$totalPages = ceil($totalRecords / $recordsPerPage);
echo "<div class='pagination'>";
if ($totalPages > 1) {
for ($i = 1; $i <= $totalPages; $i++) {
if ($i == $currentPage) {
echo "<a class='active' href='?page=$i'>$i</a> ";
} else {
echo "<a href='?page=$i'>$i</a> ";
}
}
}
echo "</div>";
// Close the connection
$conn->close();
?>
</body>
</html>
输出

解释
代码的第一部分使用提供的服务器名称、用户名、密码和数据库名称建立数据库连接。然后检查连接是否成功。接下来,它设置每页要显示的记录数,并根据 URL 参数确定当前页码。它使用当前页码和每页记录数计算起始记录索引。然后,代码执行数据库查询以使用 LIMIT 子句获取学生数据,以便仅检索当前页面的相关记录。它遍历查询结果并在网格布局中显示学生数据。
代码的第二部分处理分页。它执行另一个数据库查询以确定“studentdata”表中的记录总数。它通过将记录总数除以每页记录数并向上取整来计算总页数。然后,代码使用循环生成分页链接。如果总页数大于 1,则会为每一页生成一个链接。当前页使用“active”类突出显示。最后,关闭数据库连接并关闭 HTML 代码。总的来说,这段代码检索并显示带有分页的学生数据,并提供在页面之间切换的导航链接。
结论
PHP 代码演示了在 PHP 中实现分页的方法。它利用 MySQL 数据库来获取学生数据子集并在网格布局中显示它。代码根据每页记录数计算总页数,并相应地生成分页链接。用户可以通过单击页面链接来浏览数据。此实现通过将大型数据集划分为可管理的部分来改善用户体验,从而提高性能并防止用户界面过于复杂。它展示了实现分页所涉及的基本步骤,包括建立数据库连接、使用分页检索数据以及动态生成分页链接。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP