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";
}
?>