Как разместить всего 5 кнопок на странице

#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> ";

}