Jump to content


Photo

Sistema De Paginação


  • Faça o login para participar
1 reply to this topic

#1 Relaxeaza

Relaxeaza

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 29/05/2010, 13:27

Fala galera, tenho um sisteminha de paginação aqui e quando ele exibi vamos supor, 20 paginas (1, 2, 3...) fica muito extenso, e eu queria que depois de ter umas 15 paginas ele exibisse apanas a 5 primeiras depois 3 pontos (...) e mostrasse a ultima pagina (igual ao que tem aqui no forum).

Alguem sabe como?

<?php
mysql_connect('localhost','root','');
mysql_select_db('banco');

$view = 10; // quantidade de registros a serem exibidos
$pages = (isset($_GET['pag'])) ? (int)$_GET['pag'] : 1; // verifico se a GET pag existe, caso nao existe crio.
$start = ($view * $pages) - $view;

$sql = "SELECT * FROM users ORDER BY id ASC LIMIT $start, $view";
$qr = mysql_query($sql);

while ($ln = mysql_fetch_array($qr)) {
echo $ln['name'] . '<br />';
}

/*** paginação ***/

$sql2 = "SELECT id FROM users";
$qr2 = mysql_query($sql2);
$total = mysql_num_rows($qr2);
$totalpag = ceil($total/$view);

$next = ($pages+1);
$prev = ($pages-1);

echo "Página $pages de $totalpag";
if($pages == 1) {
echo "";
} else {
echo "<a href='index.php?pag=$prev'>Anterior</a>";
}

for($i = 1; $i <= $totalpag; $i++) {
if($pages == $i) {
echo " $i ";
} else {
echo " <a href='$i'>$i</a> ";
}
}

if($pages == $totalpag) {
echo "";
} else {
echo "<a href='index.php?pag=$next'>Proxima</a>";
}
?>


Ninguem?

#2 Salsero

Salsero

    Normal

  • Usuários
  • 60 posts
  • Sexo:Masculino
  • Localidade:Salvador
  • Interesses:PHP e Banco de Dados

Posted 02/06/2010, 14:33

Eu tenho um paginação estilo a google se servir vc pega ai... eu fiz na sua propria consulta apenas tirei a sua e chamei minha função tá

falow

é uma função que vc pode inserir na sua pagina chamando ela
$totaldapag = é a quantidade de numeros que vai aparecer na consulta exemplo de 4 ele vai listar 1 2 3 4 [5]6 7 8 9

 
mysql_connect('localhost','root','');
mysql_select_db('banco');
$totaldapag = 4
$view = 10; // quantidade de registros a serem exibidos
$pages = (isset($_GET['pag'])) ? (int)$_GET['pag'] : 1; // verifico se a GET pag existe, caso nao existe crio.
$start = ($view * $pages) - $view;

$sql = "SELECT * FROM users ORDER BY id ASC LIMIT $start, $view";
$qr = mysql_query($sql);

while ($ln = mysql_fetch_array($qr)) {
echo $ln['name'] . '<br />';
}

/*** paginação ***/

$sql2 = "SELECT id FROM users";
$qr2 = mysql_query($sql2);
$total = mysql_num_rows($qr2);
$totalpag = ceil($total/$view);
paginacao($pages,$view,$totalpag,$totaldapag);

function paginacao($pagina,$exibe,$total,$totalpaginacao){
echo "<table width=\"500\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td><center>";
// Calculando pagina anterior
$menos = $pagina - 1;
// Calculando pagina posterior
$mais = $pagina + 1;
$pgs = ceil($total / $exibe);
if($pgs > 1 ) {
if($menos >0)
echo "<a href=\"?pagina=$menos\" class='texto_paginacao'>ANTERIOR</a> ";

if (($pagina-$totalpaginacao) < 1 )

$anterior = 1;

else
$anterior = $pagina-$totalpaginacao;

if (($pagina+$totalpaginacao) > $pgs )
$posterior = $pgs;
else

$posterior = $pagina + $totalpaginacao;

for($i=$anterior;$i <= $posterior; $i++)
if($i != $pagina)
echo " <a href=\"?pagina=".($i)."\" class='texto_paginacao'>$i</a>";

else
echo " <strong class='texto_paginacao_pgatual'>[".$i."]</strong>";

if($mais <= $pgs)
echo " <a href=\"?pagina=$mais\" class='texto_paginacao'>PRÓXIMO</a>";
}
echo "
</center></td>
</tr>
</table>";
}

Edição feita por: Salsero, 02/06/2010, 14:36.

Vagner Fonseca
Programador PHP e BD
Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq