【发布时间】:2019-07-22 02:48:36
【问题描述】:
我正在尝试在 PHP 中创建显示 5 个页面的分页。
当我们在第一页时:
[1][2][3][4][5] ...[325][>>]
单击 [325] 将带您到该页面(最后一条记录),单击右箭头将带您到页面 [2]。
当我们在第二页时: [[2][3][4][5][6] ...[325][>>]
当我们在最后一页时:
[[325]
我一直在研究如何做到这一点,但运气不佳。我想我知道当我们在除第一页或最后一页之外的任何页面上时,我需要在活动页面的每一侧创建一个相邻页面为 2 的数组。我还需要创建一个<li><a href="site_members.php?Page=1">1</a></li>
和
<li><a href="site_members.php?Page=<?php echo $last_record; ?>"><?php echo $last_record; ?></a></li>
当用户在第一条或最后一条记录之外的任何地方时。
我的以下代码效果很好,但是当我们开始获取大量记录时,分页计数变得荒谬。
<ul class="pagination pull-left pagination-md">
<?php
// Creates back button in pagination
if(isset($page)) {
if($page > 1) {
$page_minus = $page-1;
echo "<li><a href='blog.php?page=$page_minus'> « </a></li>";
}
}
?>
<?php
global $con;
$q_pagination = mysqli_prepare($con, "SELECT COUNT(*) FROM admin_panel WHERE ");
$q_pagination->execute();
$result_pagination = $q_pagination->get_result();
$rows_result = $result_pagination->fetch_array();
$total_rows = array_shift($rows_result);
$post_per_page = $total_rows/15;
$post_per_page = ceil($post_per_page);
for($i = 1; $i <= $post_per_page; $i++) {
if(isset($page)){
if($i == $page) {
echo "<li class='active'><a href='blog.php?page=$i'>$i</a></li>";
}
else {
echo "<li><a href='blog.php?page=$i'>$i</a></li>";
}
}
}
// Creates the forward button in pagination
if(isset($page)){
if($page+1 <= $post_per_page) {
$page_plus = $page+1;
echo "<li><a href='blog.php?page=$page_plus'> » </a></li>";
}
}
?>
</ul>
我承认,在研究并尝试完成这项工作之后,我只是在逻辑上变得扭曲了。有没有人对如何最好地解决这个问题有任何想法?线索、当前示例等。我发现的大部分内容都过时、不完整或冗长。
【问题讨论】:
标签: php twitter-bootstrap pagination