Paginação em php com paginator

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

É formado em Sistemas de Informação, pós-graduado em Sistemas de Banco de Dados e mestre em Educação com foco em Tecnologias Sociocomunitárias. Trabalha como professor de ensino técnico e tecnológico no Instituto Federal de Educação, Ciência e Tecnologia de São Paulo ministrando disciplinas nas áreas de programação, banco de dados, desenvolvimento de projetos e engenharia de software.

Posts relacionados

Comentários

  1. 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.?

    1. 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

  2. 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);

  3. 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…

  4. 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.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *