PHP中基于query的分页如何设计
基于query()的分页设计一般需要以下步骤:
-
获取总记录数:使用SELECT COUNT(*)语句查询总记录数,并将结果存储到变量中。
-
计算总页数:根据每页显示的记录数和总记录数计算总页数,并将结果存储到变量中。
-
设置当前页数:根据用户请求的页码设置当前页数,并对页码进行验证,确保页码在有效范围内。
-
计算当前页的起始记录和结束记录:根据当前页数和每页显示的记录数计算当前页的起始记录和结束记录,并将结果存储到变量中。
-
查询当前页的记录:使用SELECT语句查询当前页的记录,并将结果存储到数组中。
-
显示分页链接:根据总页数和当前页数生成分页链接,以便用户能够浏览不同的页码和记录。
以下是一个简单的基于query()的分页示例:
// 设置每页显示的记录数
$perPage = 10;
// 获取总记录数
$result = $db->query("SELECT COUNT(*) as total FROM my_table");
$row = $result->fetch_assoc();
$total = $row['total'];
// 计算总页数
$totalPages = ceil($total / $perPage);
// 设置当前页数
if (isset($_GET['page'])) {
$currentPage = intval($_GET['page']);
if ($currentPage < 1 || $currentPage > $totalPages) {
$currentPage = 1;
}
} else {
$currentPage = 1;
}
// 计算当前页的起始记录和结束记录
$start = ($currentPage - 1) * $perPage;
$end = $start + $perPage - 1;
// 查询当前页的记录
$result = $db->query("SELECT * FROM my_table LIMIT $start, $perPage");
$rows = array();
while ($row = $result->fetch_assoc()) {
$rows[] = $row;
}
// 显示分页链接
echo '<div class="pagination">';
for ($i = 1; $i <= $totalPages; $i++) {
if ($i == $currentPage) {
echo '<span class="current">' . $i . '</span>';
} else {
echo '<a href="?page=' . $i . '">' . $i . '</a>';
}
}
echo '</div>';
// 显示当前页的记录
foreach ($rows as $row) {
// 显示记录内容
}
原文地址: https://www.cveoy.top/t/topic/Lr0 著作权归作者所有。请勿转载和采集!