分页显示额外的页面

时间:2021-01-10 16:28:28

标签: php sql pagination

我目前正在做一个分页系统,但我有一个错误,即尽管已到达最后一页,但“NEXT”按钮仍继续工作,当单击此按钮时,它会将我带到一个没有内容的额外页面。

“下一步”按钮应该在第 2 页上消失,但它是连续的,并将我发送到没有内容的第 3 页。

代码

$display_pagina = 5;

if(isset($_GET['pagina'])){
    $pagina = $_GET['pagina']; 
} else{
    $pagina = 1;
}


$inicio = ($pagina-1)*$display_pagina;

$query = "SELECT p.*, t.name, e.status FROM post AS p LEFT JOIN tipo as t ON (t.id = p.tipo_id) LEFT JOIN estado as e ON (e.id = p.estado_id) ORDER BY id DESC LIMIT $inicio, $display_pagina";

$result = mysqli_query($link, $query);

                <div class="info-list" id="info-list-id">
                    
                    <?php 
                    while($post = mysqli_fetch_assoc($result)){
                    ?>
                    
                    <a class="boton" href="info/<?php echo $post['url_slug']?>">
                    <div class="info">
                        <div class="info-content">
                            
                            <img src="<?php echo '/images/info/' . $post['image']; ?>" class="info-image"/>
                    <p class="info-title"><?php echo $post['title'];?></p>
                            <p class="info-type"><?php echo $post['name']?></p>
                        </div>
                        </div>
                        </a>
                    <?php } ?>
                        
                    </div>
    
    
            <div class="catalogo-pagination">
                <?php 
                
                $query = "SELECT p.*, t.name, e.status FROM post AS p LEFT JOIN tipo as t ON (t.id = p.tipo_id) LEFT JOIN estado as e ON (e.id = p.estado_id)";
                
                
                $result = mysqli_query($link, $query);
                
                $total_registros = mysqli_num_rows($result);
                
                $total_paginas = ceil($total_registros/$display_pagina);
                
                
                
                
                if($pagina>1){
                echo "<li><a href='info.php?pagina=".($pagina-1)."'>Previous</a></li>"; 
                }

                for ($i=1; $i<=$total_paginas; $i++) {  
                echo "<li><a href='info.php?pagina=".$i."'>".$i."</a></li>";
                };  

                if($i>$pagina){
                echo "<li><a href='info.php?pagina=".($pagina+1)."' class='button'>NEXT</a></li>";
                }
                
                echo "</ul>";          
                
                ?>

1 个答案:

答案 0 :(得分:1)

由于您只想在总页数大于当前页数时显示下一个链接,因此可以将条件更改为:

if ($total_paginas > $pagina) {
    echo "<li><a href='info.php?pagina=".($pagina+1)."' class='button'>NEXT</a></li>";
}