Ir para conteúdo

POWERED BY:

Arquivado

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

santosbio

Limitar quantidade de links em paginação

Recommended Posts

Bom dia a todos.

 

Estou criando um sistema de notícias, onde são exibidos os títulos/resumos das 5 últimas notícias cadastradas.

Utilizei o seguinte código para fazer a exibição/paginação dos resultados:

 

<?PHP


 include "inc/conecta.php";

 $campos_query = "*";
 $final_query  = "FROM tabela ";

 // Declaração da pagina inicial
 $pagina = $_GET['pagina'];
 if($pagina == "") {
  $pagina = "1";
 }

 // Maximo de registros por pagina
 $maximo = 5;

 // Calculando o registro inicial
 $inicio = $pagina - 1;
 $inicio = $maximo * $inicio;

 // Conta os resultados no total da minha query
 $strCount = "SELECT COUNT(*) AS 'id' $final_query ";
 $query    = mysql_query($strCount);
 $row      = mysql_fetch_array($query);
 $total    = $row["id"];

 if($total <= 0) {
  echo "<center>Nenhum registro encontrado.</center>";
 }
 $strQuery   = mysql_query("SELECT $campos_query $final_query ORDER BY id DESC LIMIT $inicio,$maximo");

 while($linha = mysql_fetch_array($strQuery)) {// vai exibir os resultados com um link caso queira exibir informações sobre cada registro
               $id = $linha["id"];
 $tit = utf8_encode($linha["titulo"]);
 $titulo = substr("$tit",0,85)."...";
 $noticia = utf8_encode(strip_tags($linha["noticia"]));
 $resumoNot = substr("$noticia",0,230)."...";
 $data = $linha["dia"]."-".$linha["mes"]."-".$linha["ano"];

 echo "<a style='color:#39BB64; font-weight:bold; text-decoration:none;'>$data</a> - <a href='visualiza.php?id=$id' style='color:#ffffff; font-weight:bold;'>$titulo</a>";
 echo "<br />";
 echo "<a style='color:#DDDDDD; text-decoration:none;'>$resumoNot</a><br /><br />";
            }


// Calculando pagina anterior
 $menos = $pagina - 1;

// Calculando pagina posterior
 $mais = $pagina + 1;

 echo"<div id='paginacao'>";

 $pgs = ceil($total / $maximo);

 if($pgs > 1 ) {
       // Mostragem de pagina
       if($menos>0) {
          echo "<a href=\"?pagina=$menos&seed\" class='texto_paginacao'>Anterior</a> ";
       }
 else {
   echo "Anterior ";
 }

       // Listando as paginas
       for($i=1;$i <= $pgs;$i++) {
           if($i != $pagina) {
               echo "  <a href=\"?pagina=".($i)."&seed\" class='texto_paginacao'>$i</a>";
           } else {
               echo "  <strong class='texto_paginacao_pgatual'>".$i."</strong>";
           }
       }

 if($mais <= $pgs) {
          echo "   <a href=\"?pagina=$mais&seed\" class='texto_paginacao'>Próxima</a>";
       }
 else {
  echo "   Próxima";
 }

   }

 echo"</div>";
?>

 

Nunca tinha feito uma paginação, então pesquisei no fórum e adaptei a parte de paginação desse código acima.

Porém, eu queria limitar o número de links exibidos na paginação. Ou seja, caso eu tenha 30 páginas de resultados, a paginação deveria ocorrer da seguinte forma:

 

Anterior 1 2 3 4 5 ... 30 Próxima

 

Já encontrei no banco de scripts do fórum um exemplo disso, mas não consegui compreender bem qual era a parte do código responsável por fazer essa limitação.

 

Alguém poderia me ajudar com isso?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porém, eu queria limitar o número de links exibidos na paginação. Ou seja, caso eu tenha 30 páginas de resultados, a paginação deveria ocorrer da seguinte forma:

 

Anterior 1 2 3 4 5 ... 30 Próxima

 

 

Amigo, não compreendi o que você realmente precisa, me diga uma coisa, quantos link você quer mostrar por página 1?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porém, eu queria limitar o número de links exibidos na paginação. Ou seja, caso eu tenha 30 páginas de resultados, a paginação deveria ocorrer da seguinte forma:

 

Anterior 1 2 3 4 5 ... 30 Próxima

 

 

Amigo, não compreendi o que você realmente precisa, me diga uma coisa, quantos link você quer mostrar por página 1?

 

 

Imagine a seguinte situação:

 

No meu banco de dados, eu tenho cadastradas 50 notícias.

Na pagina onde elas são listadas, eu configuro para que apareçam somente 5 notícias por vez (o que nos daria 10 páginas de notícias, correto?).

 

Então.... nesse caso, a paginação ficaria assim:

Anterior 1 2 3 4 5 6 7 8 9 10 Próxima

 

O que eu quero fazer é o seguinte:. Em vez de aparecerem os 10 links das páginas, eu quero que apareça só 5, e um link para a última página, estilo esse aqui:

Anterior 1 2 3 4 5 ... 10 Próxima

 

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.