Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal. Postando aqui um script de paginação para vocês.
Bom, fiz este script para ficar parecido com o PaginatorHelper do cakephp. Apesar de ter um pouco de POG no meio do sistema (pretendo refazer em futuras possíveis versões) parece estar funcionando bem :) (apesar de algumas limitações).
[DOWNLOAD]: http://sharex.xpg.com.br/files/5105731244/paginator.rar.html
No arquivo ja vem um exemplo de uso (index.php).
A classe Paginator utiliza abstração de base de dados, portanto não se preocupe com qual DB você irá utilizar.
E por este motivo (utilizar abstração) é necessario configurar a conexão com a base de dados. E algumas outras coisinhas extras.
Abra paginator/config.php.
Você verá três variavel, comece configurando a $config, com colocando seus dados do banco de dados, veja um exemplo:
$config = array(
'driver' => 'mysqli',
'host' => 'localhost',
'user' => 'lucas1234',
'password' => 'rte68f',
'database' => 'site_db',
'persistent' => false, // (opcional, padrão=false) Conexão será persistente?
);$pagConf = array(
'tables' => 'noticias',
);DUMP: SELECT * FROM noticias (...)
Este é o unico indice obrigatorio, porém vamos deixar um pouco mais personalizado:
$pagConf = array(
'limit' => 15, //Quantos registro paginará por página?
'tables' => array('noticias' , 'eventos'),
'fields' => array('eventos.*','noticias.id'), // Quais campos retornar
'where' => 'noticias.ativo=true', // Fragmento SQL
);DUMP: SELECT **eventos.*,noticias.id** FROM **noticias,eventos**
Como você pode ver, praticamente não tocamos em codigo SQL (a não ser em Where). Ok, Ok, mas como eu faço para pegar os dados?
Basta incluir onde você quer e todos os dados estarão disponiveis em $dados. Veja um exemplo:
<?php
include 'paginator/Paginator.php';
echo ("<a href=\"$paginator->first()\"><< Primeira</a>");
echo("<a href=\"$paginator->prev()\">< Anterior</a>");
echo $paginator->numbers(3);
echo ("<a href=\"$paginator->next()\">> Próxima</a>");
echo ("<a href=\"$paginator->last()\">Última >></a>" , );
/** TODOS OS DADOS FICAM POR PADRÃO DISPONIVEIS EM DADOS, PARA MUDAR ISSO ALTERA $varData EM CONFIG.PHP **/
foreach($dados as $dado){
// $dado contém o valor currente agora
echo 'ID: ' . $dado['id'];
}
?>
Nenhuma destas variavel são obrigatorias, mas você pode usa-las para efetuar a páginação. Ok, e agora? Agora pronto! O resto acontece sozinho :). Se o usuario clicar em Proxima, a script tratará de resgatar dos proximos dados.
Caso você queira utilizar urls amigaveis, coloque "fu" => true la em config.php (tem exemplo ja).
Assim ao invés dele gerar ?pagina=5, gerará /pagina:5/. Você também pode trocar o "pagina" (o $_GET['pagina']), você quer "page" ou algo do tipo? Ok, só trocar o indice para "var" => "page" em config.php (tem exemplos ja).
Ainda tem varios outros indices que você pode modificar, todos eles estão listados no arquivo config.php (o que tem para download).
Bom, é isso, fiz este guiazinho rapidao porque estou com pressa xD. Bom até
ATENÇÃO: Se não estiver retornando os dados (vindo em branco) provavelmente está dando ambiguidade nos campos da tabelas (você pode estar chamando 2 campos com o mesmo nome). Para mudar isso você deve trocar para "fetch" => "row" em config.php, lembre que assim você acessará a tabela pelo numero, e não pelo nome, exemplo: $dados[0] e não $dados['id'].
Carregando comentários...