Função para Paginação PHP
Quarta-feira, 19 de Novembro, 2008Agência O Positivo - www.opositivo.com
Hoje vou mostrar como montar uma paginação
-
function paginacao($items, $items_pagina, &$pagina_atual, &$pagina_total, &$pagina_anterior, &$pagina_proxima, &$indice_primeiro, &$indice_ultimo, &$items_total) {
-
if ((!$pagina_atual) || ($pagina_atual <1) || ($pagina_atual> $pagina_total)) {
-
$pagina_atual = 1;
-
}
-
$pagina_anterior = ($pagina_atual == 1 ? 0 : ($pagina_atual-1));
-
$pagina_proxima = ($pagina_atual == $pagina_total ? 0 : ($pagina_atual+1));
-
$indice_primeiro = ((($pagina_atual - 1) * $items_pagina) + 1);
-
$indice_ultimo = (($indice_primeiro + $items_pagina - 1)> $items_total ? $items_total : ($indice_primeiro + $items_pagina - 1));
-
}
Para fazer esta function funcionar, basta ter os dados em uma array ex:
Agora vamos chamar a função paginacao
-
$items_pagina =5;
-
if(!$pagina_atual)
-
$pagina_atual = 1;
-
-
$resultado=paginacao($conteudo, $items_pagina, &$pagina_atual, &$pagina_total, &$pagina_anterior, &$pagina_proxima, &$indice_primeiro, &$indice_ultimo, &$items_total);
Pronto a função vai retornar a array e os dados da paginação
-
// imprimindo tudo que a função retorna, para você mostrar na tela
-
echo "<pre>";
-
-
// montar anteriores e proximas paginas
-
if($items_total> 1){
-
$paginas .="PAGINAS:";
-
if($pagina_atual> 5) {
-
$inicio_paginacao=$pagina_atual-3;
-
$pagina_final=$pagina_atual+4;
-
if($pagina_final> $pagina_total)
-
$pagina_final=$pagina_total;
-
$paginas .=" ... | ";
-
-
}else {
-
$inicio_paginacao=1;
-
$pagina_final=($pagina_total> 13 ? 13 : $pagina_total);
-
}
-
-
for($i=$inicio_paginacao; $i <= $pagina_final; $i++){
-
if($pagina_atual==$i)
-
$paginas .="<a href='?p=$i'><font color=red><b>$i</b></font> | ";
-
else
-
$paginas .="<a href='?p=$i'>$i</a> | ";
-
}
-
if($pagina_final <$pagina_total)
-
$paginas .=" ... ";
-
}
-
-
// mostrando o resultado agora basta você saber trabalhar eles
-
echo $paginas;
-
echo "<pre>";
Ta feito a brincadeira.
Agora é só colocar o layout e saber trabalhar a array
Link para testar: http://opositivo.selfip.com:9080/blog/paginacao.php
Ducca - Agência O Positivo | www.opositivo.com