Ir para conteúdo

Arquivado

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

Doxonjrj

Paginação diferente

Recommended Posts

Galera, uso o código abaixo para poder fazer a minha paginção.

Com este código o resultado é

 

(7) [1] 2 3 ... Última »

 

 

Anterior 1,[2],3,4 Próxima

 

Segue código

 

$pag = ($pag=$_GET['pag']) ? $pag : 1;	$registros = 04; // Registros por página	$ini = ($pag-1) * $registros;	$busca = mysql_query("SELECT * FROM tb_livro_visitas ORDER BY codigo desc LIMIT ".$ini.",".$registros);	$total = mysql_query("SELECT * FROM tb_livro_visitas");$rows = @mysql_num_rows($total);     	 $anterior = $pag-1;     	 $proxima = $pag+1;     	 $pags = ceil($rows / $registros);     	 if ($pag > 1) {        echo '<a href="?pag='.$anterior.'" class="anuncio"><b>Anterior</b></a>   ';     	 }      	 //echo "<br>";     	 for ($num=1;$num<=$pags;$num++) {        if ($pag==$num) {       	 echo '<b>['.$num.']</b> ';        }         else {       	 echo '<a href="?pag='.$num.'" class="anuncio"> '.$num.'</a>';        }     	 }     	 if ($pag < $pags) {        echo '   <a href="?pag='.$proxima.'" class="anuncio"><b>Próxima</b></a> - Total - '.$rows.' mensagens';

Agora como faço para que apareça o resultado igual a este fórum da seguinte maneira

 

[1] 2 3 ... Última »

 

Ou seja, com os três pontinhos após o número 3, ao invés de aparecer todas as páginas, porque imaginem a hora que eu tiver 100 páginas, aí vai ficar super complicado na tela do usuário concordam?

 

Obrigado pela ajuda de vcs!!

 

Abraços!!!

 

Doxonjrj

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na area de códigos (ou msm neste forum, Ñ lembro), tem um script q senão me engano faz quase oq você quer. Com poucas modificações, ficaria como deseja...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera,

 

Eu mesmo após alguns minutos de raciocínio, testes, etc. consegui montar a resposta para a minha pergunta e disponibilizo aqui para todos que desejarem fazer a mesma coisa que eu

 

Valeu a todos pela ajuda

 

Segue o código

 

$pag = ($pag=$_GET['pag']) ? $pag : 1; 	 // $pag informa qual a página que está sendo visualizada	$registros = 04;       	 // Registros por página	$ini = ($pag-1) * $registros;   	 // $ini informa a partir de qual registro começará a ser feita a busca	$busca = mysql_query("SELECT * FROM tb_livro_visitas ORDER BY codigo desc LIMIT ".$ini.",".$registros);	$total = mysql_query("SELECT * FROM tb_livro_visitas");$rows = @mysql_num_rows($total);     	 $anterior = $pag-1;     	 $proxima = $pag+1;     	 $pags = ceil($rows / $registros);	// Qtd. de páginas que teremos     	 if ($pag > 1) {        echo '<a href="?pag='.$anterior.'" class="anuncio"><b>Anterior</b></a>   ';     	 }      	 //echo "<br>";     	 $ponto_anterior = 0;  // variável para sabermos qdo os três posnto foram impressos antes	     	 $ponto_posterior = 0;  // variável para sabermos qdo os três posnto foram impressos depois     	 for ($num=1;$num<=$pags;$num++) {        if ($pag==$num) {       	 echo '<b>['.$num.']</b> ';       	 $qtd_reg_imp = ($qtd_reg_imp + 1);	// conta a qtd de números impressos sem cntar os três pontos        }         else {       	 if ($pag > 3 && $ponto_anterior == 0){  // caso queira altarar a qtd de nº impressos altero aqui          echo '<a href="?pag=' . ($pag - 3) . '" class="anuncio">...</a>';          echo '<a href="?pag=' . ($pag - 2) . '" class="anuncio"> ' . ($pag - 2) . '</a>';          echo '<a href="?pag=' . ($pag - 1) . '" class="anuncio"> ' . ($pag - 1) . '</a>';          $ponto_anterior = 1;	// seto a variável informando que os três pontos antes foram impressos          $num = ($pag - 1);  // seto a página para a posição correta          $qtd_reg_imp = 3;  // informo qtos nº foram impressos       	 }       	 else {          if ($qtd_reg_imp > 2) {  // caso queira altarar a qtd de nº impressos também altero aqui           	 echo '<a href="?pag=' . ($num) . '" class="anuncio">...</a>';         	 $qtd_reg_imp = 0;  // volto a qtd de registros impressos para zero         	 $ponto_posterior = 1;	// seto a variável informando que os três pontos depois foram impressos          }          if ($ponto_posterior == 0){         	 echo '<a href="?pag='.$num.'" class="anuncio"> '.$num.'</a>';         	 $qtd_reg_imp = ($qtd_reg_imp + 1);  // volto a contar a qtd de registros impressos          }       	 }        }     	 }     	 if ($pag < $pags) {        echo '   <a href="?pag='.$proxima.'" class="anuncio"><b>Próxima</b></a> - Total - '.$rows.' mensagens';     	 }

Abraços!! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

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.