function paginacao($page, $totalLinhas, $txtQuantidade, $pagina, $compl)
{
$html = '';
$qtde_pag = ceil($totalLinhas/$txtQuantidade);
if ($totalLinhas > $txtQuantidade)
{
$html .= '<p style="text-align:center">';
if($qtde_pag > 15)
$cont = 15;
else
$cont = $qtde_pag;
if($page>1)
{
$html .= '<a href="'.$pagina.'.php?page='.'1'.$compl.'"><<</a> <a href="'.$pagina.'.php?page='.($page-1).$compl.'"><</a>';
}
if($page<=8 or $qtde_pag<=15)
$ini = 1;
else
if($page>($qtde_pag-7))
{
$ini = floor($qtde_pag-15);
$cont += $ini;
}
else
{
$ini = $page-7;
$cont += ($ini-1);
}
for ($i=$ini; $i<=$cont;$i++)
{
$html .= '<a href="'.$pagina.'.php?page='.$i.$compl.'"> ';
if ($i == $page)
{
$html .= '<b>['.$i.']</b>';
}else{
$html .= $i;
}
$html .= ' </a>';
}
if($page<floor($qtde_pag))
{
(empty($page))?$f=2:$f=$page+1;
$html .= '<a href="'.$pagina.'.php?page='.$f.$compl.'">></a> <a href="'.$pagina.'.php?page='.floor($qtde_pag).$compl.'">>></a>';
}
$html .= '</p>';
}
return $html;
}
Modo de usar
Na página onde deseja utilizar, necessitará de 2 consultas ao BD.
$intQuantidade = 100; //quantidade de arquivos por página
if($_REQUEST['page'])
$inicio = ($_REQUEST['page']*$txtQuantidade)-$txtQuantidade;
else
$inicio = 0;
$sql = "SELECT * FROM tabela LIMIT $inicio, $intQuantidade"; //sql a ser executada
$sql2 = "SELECT count(*) as total FROM tabela"; //sql que conterá a quantidade de linhas do BD.
$row2 = mysql_fetch_array(mysql_query($sql2));
$compl = "&txtPalavraChave=$txtPalavraChave"; //caso tenha algum campo de busca ou filtro, caso negativo deixar vazio, obs sempre começar com &
$pagina = "listar"; // nome da página que está executando o script, ex. listar.php, entra somente listar
paginacao($_REQUEST['page'], $row2['total'], $intQuantidade , $pagina, $compl);
Por Luiz Felipe Baio
Comentários
DRPXeRqe - 17/02/2012 06:10
Ah, i see. Well that's not too trckiy at all!"