Apesar de ser um assunto muito abordado em outros sites e blogs, resolvi postar aqui a minha abordagem de paginação em PHP. Se trata de uma classe, que com algumas poucas linhas de código, pode ser configurada para mostrar dados tabelados, com um painel de navegação entre páginas, semelhante ao utilizado no site da google.com.
Imagem demonstrativa
Exemplo de utilização
- Crie uma instância da classe
require_once('paging.class.php');
$paging = new Paging(); - Defina os parâmetros (atributos) principais
$paging->table('produtos');
$paging->labels('ID,Nome,Tipo, Descrição');
$paging->fields('id,nome,tipo,descricao');
$paging->page(isset($_GET['p']) ? $_GET['p'] : 1); - Mostre os resultados: a tabela com os registros e controles de navegação
$paging->show_table();
$paging->show_controls();
Confira mais exemplos
- Tutorial: Utilizando a classe Paging para criar uma paginação simples e rápida
- Tutorial: Paginação em ajax, utilizando a classe Paging e o plugin Jquery Table Sorter
Arquivos
Utilize o link abaixo para fazer o download dos arquivo necessários, esta tudo compactado em um arquivo zip, no total são dois arquivos, um é a classe connection.class.php, que você deve configurar com os dados de acesso para um banco de dados e o outro arquivo é o paging.class.php, responsável por criar a paginação. Caso tenha dúvidas de como proceder, confira os tutoriais disponíveis nos links acima.Baixar: Paging Class 1.0.0
Documentação
Abaixo você pode conferir a documentação da classe paging, com a lista de atributos e métodos disponíveis.Atributos
Nome | Tipo | Modificador | Descrição |
---|---|---|---|
s_table | String | Public | Nome da tabela do banco em que o objeto irá operar. |
s_fields | String | Public | Lista de campos(colunas) da tabela que deverão ser retornadas (separados por vírgulas). |
s_labels | String | Public | Lista com os valores que serão apresentados nas colunas do cabeçalho da tabela (separados por vírgulas). |
s_where | String | Public | Clausúla 'Where', caso ouver, senão poderá ser deixada em branco e assumirá '1' (tudo) na hora de realizar a query. |
s_orderby | String | Public | Nome da coluna que irá ser utilizada para ordenar os registros. Assume 'id' como padrão, caso não seja informada. |
s_orientation | String | Public | Orientação dos registros Ascendente 'ASC' ou Descendente 'DESC'. |
i_rowsperpage | Integer | Public | Número de registros mostrados por página. Se não for informado, assumirá 50 por padrão. |
i_page | Integer | Public | Página atual utilizada para a leitura dos registro. O padrão é 1, ou seja, primeria página. |
i_link_limit | Integer | Public | Limite de número de links de páginas mostrados no painel de navegação da paginação. Assume 5 caso não seja informado. |
a_columns | Array | Public | Array responsável por armazenar as colunas inseridas manualmente. |
a_cols_width | Array | Public | Array com os tamanhos das colunas do grid. |
Métodos
Nome | Retorna | Modificador | Descrição |
---|---|---|---|
table(String) | Null | Public | Método set, utilizado para definir a propriedade 's_table' |
fields(String) | Null | Public | Método set, utilizado para definir a propriedade 's_fields' |
labels(String) | Null | Public | Método set, utilizado para definir a propriedade 's_labels' |
where(String) | Null | Public | Método set, utilizado para definir a propriedade 's_where' |
orderby(String) | Null | Public | Método set, utilizado para definir a propriedade 's_orderby' |
orientation(String) | Null | Public | Método set, utilizado para definir a propriedade 's_orientation' |
rowsperpage(Int) | Null | Public | Método set, utilizado para definir a propriedade 'i_rowsperpage' |
page(Int) | Null | Public | Método set, utilizado para definir a propriedade 'i_page' |
link_limit(Int) | Null | Public | Método set, utilizado para definir a propriedade 'i_link_limit' |
total_rows() | Integer | Public | Retorna o número total de registros encontrados, baseando-se nos atributos(s_fields,s_where) passados para o objeto. |
pages_count() | Integer | Public | Retorna o número total de páginas. |
thead() | Array | Private | Retorna um array com as células utilizados no cabeçalho da tabela. Usada apenas internamente pela classe. |
cells() | Array | Private | Retorna um array com os campos que deverão ser retornados do banco de dados. Usada apenas internamente pela classe. |
page_scale(Int, Int, Int) | Array | Private | Cria uma escala numerada de páginas, avança na escala conforme o número da página atual informado, mantendo sempre números iguais de páginas anteriores e próximas a atual. Usada apenas internamente pela classe. |
show_table() | Null | Public | Escreve na tela a tabela com os registros recuperados. |
show_controls() | Null | Public | Mostra o painel de controle da paginação, com os links: ('Primeira','Anterior','Escala numerada','Próxima','Última'). Aqui existe um pequeno porém, caso o número de registros por página seja insuficiente para criar mais do que uma página, então os controles não serão mostrados, resumindo: 1 página = nenhum controle, 2 páginas ou mais = mostra controles. |
add_column() | Null | Public | Permite adicionar manualmente colunas no grid. |
cols_width() | Null | Public | Permite ajustar o tamanho das colunas do grid. |
Nenhum comentário:
Postar um comentário