No post "Paginação simples e rápida em PHP utilizando a classe Paging" foi apresentado a classe Paging, para criar paginação de dados tabelados.
Neste post, vamos ver passo a passo como fazer para utilizar os recursos desta classe e vamos construir um pequeno sistema de visualização de registros com as funções mais comuns esperadas de um recurso como este.
Arquivos necessários
Utilize o link abaixo para fazer o download dos arquivo necessários, esta tudo compactado em um arquivo zip, no total são cinco arquivos, iremos ver cada um deles a partir de agora.
produtos.sql
Execute o conteúdo deste arquivo no seu servidor mysql. Todo este exemplo é trabalhado baseando-se nos registros deste banco. Fique livre para usar qualquer outra tabela caso não queira poluir seu banco de dados com este sql. :)
paging.css
Utilizado para dar uma "floreada" em nossa tabela, aplicando alguns estilos.
connection.class.php
Utilizaremos este arquivo para fazer a conexão com o banco de dados.
- Abra o arquivo e altere os valores destacados em negrito, utilizando os dados de acesso ao seu banco de dados:
private $dsn = 'mysql:dbname=paging;host=localhost';
private $user = 'root';
private $pass = ''; - Depois de alterado, pode salvar e fechar o arquivo, não iremos mais mexer nele.
paging.class.php
Este é o arquivo que faz toda a mágica. Você não precisa mexer em basicamente nada nele, a não ser que queira personalizar, fique a vontade para realizar as mudanças que julgar necessário.
exemplo_simples.php
É neste arquivo que iremos utilizar a classe Paging.
- Abra o arquivo e procure pelas linhas:
1. require_once('paging.class.php');
2. $paging = new Paging();
3. $paging->table('produtos');
4. $paging->labels('ID,Nome,Tipo, Descrição');
5. $paging->fields('id,nome,tipo,descricao');
6. $paging->rowsperpage(10);
7. $paging->page(isset($_GET['p']) ? $_GET['p'] : 1); - Nas primeiras duas linhas nos apenas incluímos a classe Paging e criamos uma instância do objeto Paging. Até aqui nada demais.
- Na linha "
$paging->table('produtos');
", nós informamos ao objeto, qual a tabela dentro do banco de dados, que queremos que os registros sejam retornados. - Na linha "
$paging->labels('ID,Nome,Tipo, Descrição');
", utilizamos o método labels( ) para definir quais serão os valores do cabeçalho da tabela. Os valores que forem colocados ali, ficarão dentro das tags <th> da tabela. Utilize vírgulas para separar os valores. - Na linha "
$paging->fields('id,nome,tipo,descricao');
", temos um método bem semelhante: fields( ), aqui você precisa informar quais são as colunas que terão o conteúdo retornado da tabela. Assim como no método labels( ), utilize vírgula para separar os valores. - Na linha "
$paging->rowsperpage(10);
", temos o método rowsperpage( ), aqui você definirá o número máximo de registros que serão mostrados em cada página. - Na linha "
$paging->page(isset($_GET['p']) ? $_GET['p'] : 1);
", temos o método page( ). Vamos passar como parâmetro o valor da página atual, informando ao objeto, de qual página queremos que ela retorne os registros. A classe Paging, utiliza a variável $_GET['p'] como padrão, portanto deixe ela reservada para a classe, caso precise mudá-la, você terá que fazer isso manualmente no arquivo paging.class.php. Como geralmente na primeira visualização da página, a variável $_GET['p'] não esta definida, nós utilizamos um "if inline" para validá-la.
Até aqui, o que nós apenas fizemos, foi configurar nosso objeto com alguns parâmetros, nada é mostrado em tela até então. Vamos ver como isso é feito:
- Procure pelas linhas:
1. <div id="All">
2. <div id="Table"><?php $paging->show_table(); ?></div>
3. <div id="Paging"><?php $paging->show_controls(); ?></div>
4. <div id="Pagecount">Página: <?php echo($paging->i_page) ?> de <?php echo($paging->pages_count())?></div>
5. </div> - Vamos ignorar a explicação das divs neste exemplo, elas são praticamente auto-explicativas e servem basicamente apenas para organizar o conteúdo.
- Na segunda linha, utilizamos mais um método de nossa classe: show_table( ), como o nome da a entender, é ele quem imprime na tela os registros recuperados.
- Logo abaixo, utilizamos mais um importante método, o show_controls( ), é ele quem mostrará os controles de navegação das páginas. Por padrão este método irá sempre mostrar até 5 links com páginas para o usuário navegar, mas caso você queira alterar este valor, utilize o método link_limit( ), e informe um novo valor para o objeto.
- Por último, temos na penúltima linha, o uso de mais um método pages_count( ), ele nos permite retornar o número de páginas encontradas pela classe, e com isso nós conseguimos mostrar ao usuário um status da navegação dele pelas páginas.
Se você conseguiu rodar localmente este exemplo, você deve estar vendo algo parecido com a imagem abaixo:
Bom, por hoje é só, espero que tenham apreciado o exemplo. Fiquem livre para comentar, tirar dúvidas ou dar sugestões. Até breve!
Viva.
ResponderExcluirA ligação para descarregar o pagingclass penso que já n está disponivel!
Sabe dizer onde posso ir buscar?
Cumps,
Paulo