Classe de Paginação em PHP
Publicado por Leandro Correa dos Santos 15/07/2009
[ Hits: 12.991 ]
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> ";
}
}
}
}
?>
Cria gráficos para monitoramento de consumo de CPU e Memória a partir de arquivos [Atualização].
Cria gráficos de consumo de CPU e Memória a partir de arquivos.
Nenhum comentário foi encontrado.
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Instalação do K3s Single-Node com Rancher no Ubuntu 24.04
Usei o NotebookLM para Auditar Logs do Linux
Cinnamon seria a aposta acertada frente às outras interfaces gráficas mais populares?
Samba 4 AD-DC 2026: Como instalar e configurar um Active Directory (via APT-GET)
[Resolvido] Sumiço de redes e micro quedas no iwd/iwgtk (Realtek rtw88)
Como Configurar DNS Reverso (PTR) em Ambientes Linux e Microsoft
Preparando o Ambiente para Administrar o Samba 4 a partir do Windows com RSAT
Problema ao instalar Linux Mint. (1)
Midia de instalação LM-21.3 não inicializa (11)
A diferença entre a fala de um Samuel e a fala de alguém que conhece o... (9)









