Classe de Paginação em PHP
Publicado por Leandro Correa dos Santos 15/07/2009
[ Hits: 12.607 ]
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> "; } } } } ?>
phpAutoConf :: gerencie configurações de modo fácil e automático
Consulta Amazon! Buscas na Web
TxtXtrator: Classe para extração e conversão de dados de arquivos texto
Monitoramento de processos - TOP
Gerenciador para QEMU, em PHP-CLI
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (6)