Classe de Paginação em PHP
Publicado por Leandro Correa dos Santos 15/07/2009
[ Hits: 12.868 ]
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> ";
}
}
}
}
?>
WebUI: framework para criação de interfaces para Web
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Linux é a solução para o fim do Windows10? (2)
Problemas com Driver NVIDIA (4)
Programa fora de escala na tela do pc (28)
converter algoritmo C++ em C? (1)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)









