Classe de Paginação em PHP
Publicado por Leandro Correa dos Santos 15/07/2009
[ Hits: 12.590 ]
Homepage: http://resenhasdefilmes.com.br
Sempre tive problemas em realizar a paginação de um resultado em meus trabalhos. Uma delas
era a "bagunça" gerada pelo código, que atrapalhava os designers.
Com essa classe, o trabalho de criar paginação para os resultados fica mais simples e o código
mais limpo. Há um exemplo de utilização (bem simples) dentro do código. Aproveitem!
<? /******************************************************************************* * Classe de Paginação * * Autor: Leandro Correa dos Santos (nukelinux) <leandro.admo@gmail.com> * * * exemplo de uso: * instanciar a classe * $pg = new pagina(); * recebe parâmetros get para paginação * $pg->pg = $_GET['pg']; * $pg->page = $_GET['page']; * indica quantos registros devem ser mostrados em cada página * $pg->fim = 5; * esse select é utlizado para contar o número de registros desejados, por isso * ele busca apenas o id da tabela. Pode-se adaptar para utilização da função * count(), o que acredito deixar o script mais rápido... * $pg->sql = "select id from tabela "; * O método parte1 realizará o cálculo necessário para o funcionamento correto * do paginador, atribuindo valores às variáveis $this->inicio e $this->fim, * necessárias para a busca dos dados * $pg->parte1(); * aqui vc deve realizar a busca dos dados que serão exibidos, aproveitando o * resultado dos cálculos do paginador * $res = mysql_query("select * from tabela limit $this->inicio,$this->fim"); * a forma de mostar os resultados fica a seu critério :) * O método parte2 exibe os números das páginas (ex : 1 2 3 próxima >> ). * Está bem simples, sem estilos ou efeitos para facilitar a customização * $pg->parte2(); *******************************************************************************/ class pagina { var $pg, $page, $sql, $total, $url, $tp, $numreg, $inicio, $fim; function parte1() { if(!$this->pg){ $this->pg = 1; } if(!$this->page){ $this->page = 1; } try{ $this->total = mysql_query($this->sql); $this->numreg = mysql_num_rows($this->total); }catch(Exception $e){ echo 'exceção: ', $e->getMessage(), "\n"; } if($this->numreg >= 1) { try{ $this->tp = ceil($this->numreg/$this->fim); $this->inicio = $this->page - 1; $this->inicio = $this->inicio * $this->fim; }catch(Exception $E){ echo 'exceção: ', $E->getMessage(), "\n"; } } } function parte2() { //se a url do paginador não for definida, o padrão é a própria página if(!$this->url) { $this->url = $PHP_SELF; } for($x = 1;$x <= $this->tp;$x++) { if($this->page == $x) { echo " <a href='#'>$x</a> "; } else { echo " <a href='$this->url?page=$x'>$x</a> "; } } } } ?>
Receber atualização de encomendas do correios em seu e-mail
Automatizando tradução i18n do seu codigo
Monitoramento simples de servidores [versão 1.0]
video aleatórias no seu site..youtube
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
É cada coisa que me aparece! - não é só 3% (3)
Melhorando a precisão de valores flutuantes em python[AJUDA] (5)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta