Classe de Paginação em PHP
Publicado por Leandro Correa dos Santos 15/07/2009
[ Hits: 12.649 ]
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> "; } } } } ?>
Cron - Classe PHP para cálculo da diferença entre duas datas
Validação de e-mail usando o DIG
Biblioteca de classes para facilitar a criação de formulários e conexão ao MySQL
Nenhum comentário foi encontrado.
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Linux Lite Demorando Muito Para Ligar (1)
PC não liga no filtro de linha (4)
Remoção de propaganda com o programa Comskip[AJUDA] (2)