Classe de Paginação em PHP
Publicado por Leandro Correa dos Santos 15/07/2009
[ Hits: 12.429 ]
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> "; } } } } ?>
Previsão do tempo para Porto Alegre/RS
Nenhum comentário foi encontrado.
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
HDMI não funciona no Mint 21.3 Cinnamon (1)
Removi o pacote snap e deu ruim (2)
Criar um script para testar pen drive (4)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba