Classe de Paginação em PHP
Publicado por Leandro Correa dos Santos 15/07/2009
[ Hits: 13.009 ]
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> ";
}
}
}
}
?>
Validação de e-mail usando o DIG
Nenhum comentário foi encontrado.
Instalação Completa e Configuração Básica do Void Linux
A Fundação da Confiança Digital: A Importância Estratégica de uma PKI CA na Segurança de Dados
Como enviar dicas ou artigos para o Viva o Linux
Como Ativar a Aceleração por GPU (ROCm) no Ollama para AMD Navi 10 (RX 5700 XT / 5600) no Gentoo
Samba 4 AD-DC 2026: Backup & Restore
Samba 4 AD-DC 2026: LAPS (Randomizando senhas locais).
Cairo Dock ainda funcional nos dias de hoje
Configuração de IP fixo via nmcli e resolução de nomes via /etc/hosts no Gentoo
Linus Torvalds e Bill Gates se encontram pela primeira vez (4)
Criar conta no Google [RESOLVIDO] (3)
Alguém conhece ou indica? [RESOLVIDO] (6)
Não consigo instalar as bibliotecas em Python pelo terminal. (3)









