Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia a todos.
Estou criando um sistema de notícias, onde são exibidos os títulos/resumos das 5 últimas notícias cadastradas.
Utilizei o seguinte código para fazer a exibição/paginação dos resultados:
<?PHP
include "inc/conecta.php";
$campos_query = "*";
$final_query = "FROM tabela ";
// Declaração da pagina inicial
$pagina = $_GET['pagina'];
if($pagina == "") {
$pagina = "1";
}
// Maximo de registros por pagina
$maximo = 5;
// Calculando o registro inicial
$inicio = $pagina - 1;
$inicio = $maximo * $inicio;
// Conta os resultados no total da minha query
$strCount = "SELECT COUNT(*) AS 'id' $final_query ";
$query = mysql_query($strCount);
$row = mysql_fetch_array($query);
$total = $row["id"];
if($total <= 0) {
echo "<center>Nenhum registro encontrado.</center>";
}
$strQuery = mysql_query("SELECT $campos_query $final_query ORDER BY id DESC LIMIT $inicio,$maximo");
while($linha = mysql_fetch_array($strQuery)) {// vai exibir os resultados com um link caso queira exibir informações sobre cada registro
$id = $linha["id"];
$tit = utf8_encode($linha["titulo"]);
$titulo = substr("$tit",0,85)."...";
$noticia = utf8_encode(strip_tags($linha["noticia"]));
$resumoNot = substr("$noticia",0,230)."...";
$data = $linha["dia"]."-".$linha["mes"]."-".$linha["ano"];
echo "<a style='color:#39BB64; font-weight:bold; text-decoration:none;'>$data</a> - <a href='visualiza.php?id=$id' style='color:#ffffff; font-weight:bold;'>$titulo</a>";
echo "<br />";
echo "<a style='color:#DDDDDD; text-decoration:none;'>$resumoNot</a><br /><br />";
}
// Calculando pagina anterior
$menos = $pagina - 1;
// Calculando pagina posterior
$mais = $pagina + 1;
echo"<div id='paginacao'>";
$pgs = ceil($total / $maximo);
if($pgs > 1 ) {
// Mostragem de pagina
if($menos>0) {
echo "<a href=\"?pagina=$menos&seed\" class='texto_paginacao'>Anterior</a> ";
}
else {
echo "Anterior ";
}
// Listando as paginas
for($i=1;$i <= $pgs;$i++) {
if($i != $pagina) {
echo " <a href=\"?pagina=".($i)."&seed\" class='texto_paginacao'>$i</a>";
} else {
echo " <strong class='texto_paginacao_pgatual'>".$i."</strong>";
}
}
if($mais <= $pgs) {
echo " <a href=\"?pagina=$mais&seed\" class='texto_paginacao'>Próxima</a>";
}
else {
echo " Próxima";
}
}
echo"</div>";
?>
Nunca tinha feito uma paginação, então pesquisei no fórum e adaptei a parte de paginação desse código acima.
Porém, eu queria limitar o número de links exibidos na paginação. Ou seja, caso eu tenha 30 páginas de resultados, a paginação deveria ocorrer da seguinte forma:
Anterior 1 2 3 4 5 ... 30 Próxima
Já encontrei no banco de scripts do fórum um exemplo disso, mas não consegui compreender bem qual era a parte do código responsável por fazer essa limitação.
Alguém poderia me ajudar com isso?
Obrigado.
Carregando comentários...