#php #pagination #phpmyadmin
Вопрос:
Эй, ребята, я сделал разбиение на страницы, чтобы показать 50 элементов на странице. Это работает, но когда я нажимаю кнопки, они отображаются во всех регистрах. Например, у меня 1910 элементов, и на каждой странице отображается 39 кнопок, так что это ужасно.
Как я могу показать только 5 кнопок с цифрами 1-2-3-4-5 -> , ><-2-3-4-5-6->, ……. <-2-3-4-5-6-><-10,11-12-13-14-> на страницу в соответствии с расположенными записями?
Вот код для справки:
<?php
$page = 1;
if(array_key_exists('pg', $_GET)){
$page = $_GET['pg'];
}
$q = "SELECT COUNT(*) as conteo FROM Infraccions";
$r = mysqli_query($dbc, $q);
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
$conteo = $row['conteo'];
}
$max_num_paginas = intval($conteo/50);
$segmento = mysqli_query($dbc,"SELECT * FROM infraccions LIMIT ".(($page-1)*50).", 50 ");
while ($row = mysqli_fetch_array($segmento, MYSQLI_ASSOC)) {
.........
}
$prev = $page - 1;
$next = $page 1;
if ($prev > 0) {
echo "<b><a class='page-link' aria-label='Previous' href='Llista_Infraccions.php?pg=$prev'><-";
}
?>
</a></b>
</li>
<?php
for( $i=0; $i <= $max_num_paginas; $i ) {
echo '<b><a class="page-link" href="Llista_Infraccions.php?pg='.($i 1).'">'.($i 1).'</a></b>';
}
//Boton 'Siguiente'
if ($page < $max_num_paginas ) {
echo "<b><a class='page-link' aria-label='Next' href='Llista_Infraccions.php?pg=$next'>->";
}
?>
Ответ №1:
Попробуйте это:
$pages = array( 'Page 1', 'Page 2', 'Page 3', 'Page 4', 'Page 5', 'Page 6', 'Page 7', 'Page 8', 'Page 9', 'Page 10' );
// The current page
$current_page = !empty( $_GET['page'] ) ? $_GET['page'] : 1;
$pages_count = count( $pages );
$max_in_page = 2;
$pagination = ceil( $pages_count / $max_in_page );
$index_start = ( ( $current_page - 1 ) * $max_in_page );
$index_end = $index_start $max_in_page;
$showing_pages = array_slice( $pages, $index_start, $max_in_page );
foreach( $showing_pages as $key ){
echo $key . "<br>";
}
for( $i = 1; $i <= $pagination; $i ){
echo " <a href="?page=$i">[$i]</a> ";
}