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 代码。总的来说,这段代码检索并显示带有分页的学生数据,并提供在页面之间切换的导航链接。
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
结论
PHP 代码演示了在 PHP 中实现分页的方法。它利用 MySQL 数据库来获取学生数据子集并在网格布局中显示它。代码根据每页记录数计算总页数,并相应地生成分页链接。用户可以通过单击页面链接来浏览数据。此实现通过将大型数据集划分为可管理的部分来改善用户体验,从而提高性能并防止用户界面过于复杂。它展示了实现分页所涉及的基本步骤,包括建立数据库连接、使用分页检索数据以及动态生成分页链接。