Я пытаюсь создать нумерацию страниц в PHP, где отображаются 5 страниц.
Когда на первой странице у нас есть:
[1]
[2] [3] [4] [5] ... [325] [>>]
Нажав на [325], вы попадете на эту страницу (последнюю запись), нажав на стрелку вправо, вы попадете на страницу [2].
Когда на второй странице у нас есть: [<<][1] ... <code>[2] [3] [4] [5] [6] ... [325] [>>]
И когда на последней странице у нас есть:
[<<] [1] ... [321] [322] [323] [324] <code>[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>
Признаюсь, после исследования и попыток сделать эту работу, я просто искажаю логику.У кого-нибудь есть мысли о том, как лучше к этому подойти?Ссылки, текущие примеры и т. Д. Большинство из того, что я нашел, датировано, неполно или глупо долго.