Ícone do site Linha de Comando

PHP: Script para paginação

O script é baseado neste link, escrito por “wolfphw”.

Porém, este script apresenta alguns problemas relatados neste outro link.

veja o que acontece:
<< Anterior 1 2 3 4 Próxima >>
— quando clica no número 1, o valor de $pg é igual a 0, em 2 $pg = 1 e assim sucessivamente.

Qual a proposta deste post?
Compartilhar um código funcional, resolvendo o problema da numeração e com mais alguns ajustes.

A idéia é a mesma, vamos ter 2 arquivos, pagina.php e paginacao.php.

pagina.php


"; // quebra de linha entre a paginação e o conteúdo // aqui uma pequena mudança no código do wolfphw // a paginação só exibida quando o total de produtos for maior // que a quantidade de registros por página if ( $countTotal > $numreg ){ include("paginacao.php"); // chamada do arquivo. ex: << Anterior 1 2 3 4 5 Próxima >> } ?>

paginacao.php

 1) {
   echo "Anterior ";
} else {
   echo "Anterior ";
}
// Faz controle das páginas que irá mostrar na paginação	
if(($pg - 4) < 1) {
   $anterior = 1;
} else {
   $anterior = $pg - 4;
}
if(($pg + 6) > $quant_pg) {
   $proximo = $quant_pg;
} else {
   $proximo = $pg + 6;
}
// Crio os números das páginas entre Anterior e Próximo	
for($i_pg = $anterior; $i_pg < $proximo; $i_pg++) {
   if ($pg == ($i_pg)) {
	echo "$i_pg";
   } else {
       $i_pg2 = $i_pg;
       echo " $i_pg ";
   }
}
// proximo
if (( $pg + 1 ) < $quant_pg) {
   echo " Próxima";
} else {
   echo " Próxima";
}
?>
Sair da versão mobile