Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

BrendonPawn

Limitar links de paginação

Recommended Posts

Bom dia, tarde noite,

 

Estou usando esse código para paginar meus resultados vindos de um banco de dados (PHP+MySQL)

$limite = 10; 
$busca_total = $mysql->query("SELECT * FROM usuarios");
$pagina = (isset($_GET['pag'])) ? $_GET['pag'] : 1;
$num_rows = $mysql->numrows($busca_total);
if($num_rows > 0){
    $paginas = ceil($num_rows/$limite);
    if($pagina > 1)
        $html .= "<a href=\"contas.php?modulo=lista&pag=1\">Primeira</a> ";
    for($i=1;$i<=$paginas;$i++)
	$html .= ($pagina == $i) ? "<a class=\"active\" href=\"contas.php?modulo=lista&pag={$i}\">{$i}</a> " : "<a href=\"contas.php?modulo=lista&pag={$i}\">{$i}</a> ";
    if($pagina < $paginas) 
	$html .= "<a href=\"contas.php?modulo=lista&pag={$paginas}\">Última</a>";
}

Porem chegará um ponto em que ficará assim:

Primeira 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Última

E assim sucessivamente... Gostaria que me ajudassem a descobrir uma lógica para limitar os links exemplo...

Primeira 5 6 7 8 9 >10< 11 12 13 14 15 Última

Não sei se deu pra entender, mas caso alguém queira me ajudar e não entendeu, fala ae que eu explico melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites


for($i = $pag-$links; $i <= $pag-1; $i++){

 

($i <= 0) ? true : print '<li><a href="?p='.$i.'">'.$i.'</a></li>';

 

}

 

echo '<li class="active"><a href="#">'.$pag.'</a></li>';

 

for($i = $pag+1; $i <= $pag+$links; $i++){

 

($i > $paginas) ? true : print '<li><a href="?p='.$i.'">'.$i.'</a></li>';

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites


<?php

$limite = 10;

$busca_total = $mysql->query("SELECT * FROM usuarios");

$pagina = (isset($_GET['pag'])) ? $_GET['pag'] : 1;

$num_rows = $mysql->numrows($busca_total);

 

$paginas = ceil($num_rows/$limite);

 

$anterior = $pagina -1;

$proximo = $pagina +1;

 

if($num_rows > 0){

if ($paginas > 1) {

if ($anterior > 0) {

echo " <a href='?pag=".$anterior."'>Anterior</a> ";

} else {

echo "Anterior";

}

 

 

for ($i=1;$i<=$paginas;$i++) {

if ($i < ($pagina-4) AND $i == 1) {

echo " <a href='?pag=".$i."'>".$i."</a> ";

}

 

if ($i >= ($pagina-4) AND $i <= ($pagina+4)) {

if ($i == $pagina) {

echo " >".$i."< ";

} else {

echo " <a href='?pag=".$i."'>".$i."</a> ";

}

}

 

if ($i > ($pagina+4) AND $i == $paginas) {

echo " <a href='?pag=".$i."'>".$i."</a> ";

}

}

 

if($pagina < $paginas) {

echo " <a href='?pag=".$proximo."'>Proximo</a> ";

} else {

echo " Proximo ";

}

}

}

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.