Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Limitar quantas paginas exibir na paginação


vini_loock

Pergunta

Olá.

Eu quero saber como que eu faço para exibir um numero determinado de paginas na paginação.

Exemplo:

teno 10 paginas mas eu quero que exiba 3.

primeira << 1 - 2 - 3 ... >> ultima

Eu upei uma imagen, mas acho que nem precisava xD. Mas pra não ter perdido tempo ai vai ela.

http://img814.imageshack.us/img814/2079/semttulo1d.png

Isso ai.

Vlw

RESOLVIDO

achei um código pronto, dai foi só alterar algumas coisas.

$quantidade = 5;
                                $pagina     = (isset($_GET['pagina'])) ? (int)$_GET['pagina'] : 1;
                                $inicio = ($quantidade * $pagina) - $quantidade;
                                
                                $sqlTotal = "SELECT * FROM $categoria";
                                $qrTotal = mysql_query($sqlTotal) or die(mysql_error());
                                $numTotal = mysql_num_rows($qrTotal);
                                $totalPagina = ceil($numTotal/$quantidade);
                                
                                if($totalPagina != 1){
                                echo"<div id=paginacao>";
                                if($pagina ==1){
                                    echo"<div id=sem>Primeira página</div>";
                                }else{
                                    echo "<div id=com><a href=\"?local=$categoria&pagina=1\">Primeira página</a></div>";
                                }
                                
                                if($pagina ==1){
                                    echo"<div id=sem><<</div>";
                                }else{
                                    $p = $_GET['pagina'];
                                    for($i = $p; $i == $p; $i--);
                                    echo "<div id=com><a href=\"?local=$categoria&pagina=$i\"><<</a></div>";
                                }
                                
                                $p = $_GET['pagina'];
                                for($i = $p; $i == $p; $i++);
                                
                                  $paginaMenos = $i-1;
                                if($paginaMenos > 2){
                                    echo "<div id=sem>aaa</div>";
                                }
                                
                                $exibir = 3;
                                for($i = $pagina-$exibir; $i <= $pagina-1; $i++){
                                    if($i > 0)
                                        echo '<div id=com><a href="?local='.$categoria.'&pagina='.$i.'"> '.$i.' </a></div>';
                                }
                                
                                echo "<div id=sem><a href=\"?local=$categoria&pagina=$pagina\">".$i."</a></div>";
                                
                                for($i = $pagina+1; $i < $pagina+$exibir; $i++){
                                    if($i <= $totalPagina)
                                        echo '<div id=com><a href="?local='.$categoria.'&pagina='.$i.'"> '.$i.' </a></div>';
                                }
                                
                                $totalMais = $totalPagina-1;
                                $paginaAtual = $i-1;
                                if($paginaAtual < $totalMais){
                                    echo "<div id=sem>bbb</div>";
                                }
                                    
                                $inovo = ($i-1);
                                if($inovo == $totalPagina){
                                    echo"<div id=sem>>></div>";
                                }else{
                                    echo "<div id=com><a href=\"?local=$categoria&pagina=$i\">>></a></div>";
                                }

                                if($pagina == $totalPagina){
                                    echo"<div id=sem>Última página</div>";
                                }else{
                                    echo "<div id=com><a href=\"?local=$categoria&pagina=$totalPagina\">Última página</a></div>";
                                }
                                    echo "<div id=paginaquantidade>Página $pagina de $totalPagina</div>";
                                    echo"</div>";
                                }

Vlw

Editado por vini_loock
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Você tem que usar uma matematicazinha ai.

Pega quantas paginas vai dar, ve a pagina atual, ai você coloca para exibir como quiser tipo:

Exiba link Primeira Pagina
    Se(Pagina -1  não for a segunda) exiba reticencias
    Exibir Pagina-1, Exibir Pagina, Exibir Pagina +1 // faca também condicoes de se o nmro de paginas for >=5
    Se (Pagina +1 não for a ultima) exiba reticencias

Exiba link Ultima Pagina

tem q ter toda uma logica ai na quebrada, facil você consegue

Link para o comentário
Compartilhar em outros sites

  • 0

O código é esse.

$quantidade = 5;
                            $pagina     = (isset($_GET['pagina'])) ? (int)$_GET['pagina'] : 1;
                              $inicio = ($quantidade * $pagina) - $quantidade;

                                $sqlTotal = "SELECT * FROM $categoria";
                                $qrTotal = mysql_query($sqlTotal) or die(mysql_error());
                                $numTotal = mysql_num_rows($qrTotal);
                                $totalPagina = ceil($numTotal/$quantidade);
                                
                                if($totalPagina != 1){
                                echo"<div id=paginacao>";
                                if($pagina ==1){
                                    echo"<div id=sem>Primeira página</div>";
                                    echo"<div id=sem><<</div>";
                                }else{
                                    echo "<div id=com><a href=\"?local=$categoria&pagina=1\">Primeira página</a></div>";
                                    $p = $_GET['pagina'];
                                    for($i = $p; $i == $p; $i--);
                                    echo "<div id=com><a href=\"?local=$categoria&pagina=$i\"><<</a></div>";
                                }
                                
                                
                                for($i = 1; $i <= $totalPagina; $i++)
                                
                                if($i == $pagina){
                                    echo "<div id=ativo>$i</div>";
                                }else{
                                    echo "<div id=com><a href=\"?local=$categoria&pagina=$i\">$i</a></div>";
                                }
                                $p = $_GET['pagina'];
                                for($i = $p; $i == $p; $i++);
                                
                                $inovo = ($i-1);
                                if($inovo == $totalPagina){
                                    echo"<div id=sem>>></div>";
                                }else{
                                    echo "<div id=com><a href=\"?local=$categoria&pagina=$i\">>></a></div>";
                                }
                                if($pagina == $totalPagina){
                                    echo"<div id=sem>Última página</div>";
                                }else{
                                    echo "<div id=com><a href=\"?local=$categoria&pagina=$totalPagina\">Última página</a></div>";
                                }
                                    echo "<div id=paginaquantidade>Página $pagina de $totalPagina</div>";
                                    echo"</div>";
                                }
Vo tentar fazer isso que você falou Douglas Jam Vlw EDIT-[ Ficou assim:
$paginaMenos = $i-1;
                                    if($paginaMenos > 2){
                                        echo "aaa";
                                    }
                                    
                                    $totalMais = $totalPagina-1;
                                    $paginaAtual = $i-1;
                                    if($paginaAtual < $totalMais){
                                        echo "bbb";
                                    }

A parte das reticendias eu entendi, só não entendi como exibir exibir só 3 links.

]-

Editado por vini_loock
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...