Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá de novo pessoal,
Bom, hoje é o seguinte, estou com um sistema de paginação, porém ele tem um defeito.
Se ele vê que o banco gera 1000 páginas, ele mostra as mil páginas.
O que eu gostaria é que quando o número de páginas mostrados do indice chegasse a 5 ele não mostrasse o resta da quantidade de páginas, mas sim um "...", e quando ele chegasse na página 5 o indice mostrasse as páginas até a 10, e antes do número 5 um "...", e depois da página 10 se tivesse outras páginas mostrasse um "..."
Bom irei mostrar imagens para deixar mais lúdico o que eu necessito:
Forma de paginação do meu script:
/applications/core/interface/imageproxy/imageproxy.php?img=http://wingtech.com.br/imagens/pag.png&key=12662ffaf2211b2f25fea29c0fd220e4a63b14ef560baf43cbc1c8f8117874dd" alt="Imagem Postada" />
Forma que eu gostaria:
<<Anterior [1] 2 3 4 5 ... Próximo>>
Ai se o usuário chega na página 5:
<<Anterior ... 4 [5] 6 7 8 9 ... Próximo>>
Bom é mais o menos isso que eu queria, se alguem puder me ajudar eu agradeço! Estou tentando fazer esse efeito na paginação faz tempo!
Ah, e ai vai meu script se alguem puder editar ele pra mim já eu agradeço:
<?php include('conexao_com_o_bd.php'); ?>
<?php
$pagessize = 20; // Quantos registros por página vai ser mostrado
if($_GET['pages']){
$pages = $_GET['pages'];
}else{
$pages = 0;
}
?>
<table width="700" align="right" cellpadding="0" cellspacing="20" border="0">
<tr>
<td><p><font face="Calibri">Veja nossos artigos:</font></p>
<p> </p>
<p><font face="Calibri">
<?php
$sql = "SELECT * FROM artigos_entrevistas WHERE publicado = 1 AND tipo = 1 ORDER BY data ASC";
$resultado = mssql_query($sql, $link) or die ("Não foi possível executar a consulta");
$nrecs = mssql_num_rows($resultado);
$npages = ceil($nrecs/$pagessize);
$npages++;
$startrec = $pagessize * $pages;
$n = 0;
$s = 0;
while ($linha=mssql_fetch_array($resultado)) {
if(($n>=$startrec) &&($s<$pagessize)){
$id = $linha["id"];
$titulo = $linha['titulo'];
echo "<p><a href='artigos_det.php?id=".$id."'><li>".$titulo."</li></p>";
$s++;
}
$n++;
}
?>
</tr>
<tr>
<td align="center"><?php
if ( $pages > 0) {
echo "<a href='".$PHP_SELF."?&pages=".($pages-1) ."' class=pg><b><font face=Calibri size=2> « Anterior</font></b></a>";
} else {
echo "<font color=#CCCCCC face=Calibri size=2> « Anterior</font>";
}
for($i=1;$i<$npages;$i++) {
if ($pages == ($i-1)) {
echo " <span class=pgoff><font face=Calibri color=#cf111111 size=2><strong> [$i]</strong></font></span> ";
} else {
$x = $i-1;
echo " <a href='".$PHP_SELF."?&pages=$x' class=pg><b><font face=Calibri size=2> $i</font></b></a> ";
}
}
if (($pages+2) < $npages) {
echo "<a href='".$PHP_SELF."?&pages=".($pages+1)."' class=pg><b><font
face=Calibri size=2> Próximo »</font></b></a>";
} else {
echo "<font color=#CCCCCC face=Calibri size=2> Próximo »</font>";
}
?></td>
</tr>
</table>Carregando comentários...