Geralmente quem desenvolve um projeto em php e disponibiliza mecanismos de pesquisa e resultados sempre deve implementar também um bom esquema de paginação para evitar que um número muito alto de informações provenientes da base de dados seja concentrada 100% em uma única página. Isso garante um carregamento mais rápido e uma navegabilidade melhor na hora de encontrar aquilo que o usuário procura.
Porém, para aqueles que estão iniciando, essa questão de paginar os resultados de uma pesquisa no banco e fazer todos os tratamentos à erros pode se tornar um tanto desgastante.
É por isso que no post de hoje eu vou abordar o paginator, que nada mais é do que um arquivo disponibilizado gratuitamente em http://jpinedo.webcindario.com/scripts/paginator/descargas.html e que tem como objetivo fazer todo o “trabalho pesado” da tarefa da paginação, deixando para o programador apenas a missão de consultar informações no banco, e se desejar, aplicar regras CSS.
Vamos à um exemplo simples. Para usar o paginator basta fazer o download e descompactar o arquivo paginator.inc.php dentro da pasta do seu projeto. Depois crie um arquivo com o nome que desejar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php //conexao com o banco de dados mysql_connect('localhost', 'root', 'senha'); mysql_select_db('banco1'); $_pagi_sql = "SELECT cidade, estado FROM tb_cidades ORDER BY cidade"; $_pagi_cuantos = 10; //número de registros por pagina. Padrão:20 include_once('paginator.inc.php'); echo "<ul>"; while($row = mysql_fetch_array($_pagi_result){ echo "t<li>" . $row['cidade'] . " - " . $row['estado'] . "</li>"; } echo "</ul>"; echo '<p>'. $_pagi_navegacion. '</p>'; ?> |
Sem muitos segredos, temos que ficar atentos apenas aos nomes das variáveis a serem utilizadas pelo paginator. Você percebe que o idioma utilizado no arquivo é o espanhol, mas isso pode ser alterado. Basta ir no arquivo e fazer as alterações no código tomando sempre cuidados para não fazer besteiras.
Abs
————–
Atualizado em 01/06/2011: Fiz a tradução das barras de navegação e das mensagens do paginator. Quem quiser baixar CLIQUE AQUI
. Está em um arquivo TXT. Não se esqueça de alterar para a extensão .php quando for utilizar.
Siga-me no twitter: @rafaelwendel
Rafael não sei tem como, mas sera que tem como paginator ler os ultimos registro como primeiro, tipo os ultimos registros ficam na primeira pagina.?
Ola Luiz, obrigado pela visita…
Tem como sim. É só alterar a consulta SQL ordenando da forma que achar melhor.
No exemplo do post, para inverter a ordem:
SELECT cidade, estado FROM tb_cidades ORDER BY cidade DESC
Qualquer duvida estou a disposição.
Abs
Gostaria de saber como retirar esse erro, pois achei um artigo na internet que diz ser erro de compatibilidade !
O erro ocorre na linha 202
$_pagi_sqlConta = eregi_replace(“select[[:space:]](.*)[[:space:]]from”, “SELECT COUNT(*) FROM”, $_pagi_sql);
Olá Raphael,
Como está a sua consulta SQL?
Abs
Seguinte o paginator funciona igual uma belza mas tenho um pequeno problema..
Estou passando a minha variavel de pesquisa GET com base64_encode, até ai estava ok, porém quando eu clico no link para ir na pagina 2, aparece esse link :
?id_cu=PF&_pagi_pg=2
na realidade esse PF ele pego já sem o encode, e deveria pegar ele com encode pq na minha pagina principal tem a variavel que faz o decode…
Deu pra entender +/-?
fora isso está tranquilo o paginator…
Beleza Rafael cara agora eu to com um outro problema, a outra vez que eu usei o paginator deu tudo certo dessa vez eu to com o mesmo problema que o companheiro raphael, ele da um erro de Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\leandro\config\paginator_pt.inc.php on line 202, o que pode ser cara?
O meu sql ficou assim $_pagi_sql = “SELECT * FROM promocao WHERE situacao = 1 LIMIT 1”;.
Me de um help por favor.
Olá Luiz,
Como a própria mensagem diz, o paginator está usando uma função que já está ultrapassada. Tente pesquisar por versoes mais atuais do paginator.
Abs!