Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alaerte Gabriel

[Resolvido] Paginação com links limitados

Recommended Posts

Olá pessoal, desenvolvi um simples sistema de paginação que tem como objetivo a limitação dos links, por exemplo, imagine se nós tivéssemos mais de 200 página de resultados em uma consulta ? iriam aparecer inúmeros links para cada página: 1 2 3 4 5 6 7 8 9 10... e assim por diante, então esse script tem os links limitados, vocês irão entender quando testá-lo, vamos lá.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Expires" content="Fri, Jan 01 1900 00:00:00 GMT">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="content-language" content="en">
<meta name="author" content="Alaerte Gabriel">
<meta http-equiv="Reply-to" content="gabriel.php@gmail.com">
<meta name="creation-date" content="09/20/2007">
<meta name="revisit-after" content="15 days">
<title>Paginação</title>
<style type="text/css">
<!--
.pag {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 10px;
	background-color: #CACAFF;
	height: 20px;
	border-top-width: 1px;
	border-right-width: 1px;
	border-bottom-width: 1px;
	border-left-width: 1px;
	border-top-style: solid;
	border-right-style: solid;
	border-bottom-style: solid;
	border-left-style: solid;
	border-top-color: #A8A8FF;
	border-right-color: #A8A8FF;
	border-bottom-color: #A8A8FF;
	border-left-color: #A8A8FF;
	text-decoration: none;
}
-->
</style>
</head>
<body>
<?php
  define('LOGIN','usuario');		# Login da base de dados.
  define('SENHA',senha);			  # Senha da base de dados
  define('BASE','nome do db');				 # Nome da base de dados
  define('TABELA','tabela');			# Tabela que contem os dados
  define('CAMPO_ID','campo');			 # Campo ID da tabela, auto incremento.
  define('CAMPO_ORDEM','campo');# Campo pelo qual será ordenado os registros.
  define('REG',5);						# Número de registros por página.
  define('LINKS',5);					 # Limitação dos links da paginação.

  $db = mysql_connect('localhost',LOGIN,SENHA)or die(mysql_error());
  ($db) ? mysql_select_db(BASE,$db):die('Erro Na conexão com a base de dados.');
  
  if($_SERVER['REQUEST_METHOD']=='GET'){
	  
  $pg = isset($_GET['pg']) ? (int)(htmlentities($_GET['pg'])) : 1;
  
  ($pg <= 0) ? $pg = 1 : NULL;
  
  $inicio = ($pg * REG) - REG;
  
  $select = mysql_query("SELECT * FROM ".TABELA." ORDER BY ".CAMPO_ORDEM." LIMIT $inicio,".REG)or die(mysql_error());
  
  while($ver = mysql_fetch_array($select)){	 
   
   print $ver['nome'].'<br />';

  }
  
  mysql_free_result($select);
  $conta_reg = mysql_query("SELECT COUNT(*) AS ".CAMPO_ID." FROM ".TABELA)or die(mysql_error());
  $total_reg = mysql_result($conta_reg,0,CAMPO_ID);
  $paginas   = ceil($total_reg/REG);
  mysql_free_result($conta_reg);
?>
<table width="258" border="0" cellpadding="0" cellspacing="0">
  <tr>
	<td class="pag">
	<a href="?pg=1">Primeira Página</a>
	</td>
	<td class="pag">
	
<?php
  for($i = $pg-LINKS; $i <= $pg-1; $i++){
	  
	  ($i <= 0) ? false : print '<a href="?pg='.$i.'">'.$i.'</a>';
	  
  }
  
  print '<a href="#">'.$pg.'</a>';
  
  for($i = $pg+1; $i <= $pg+LINKS; $i++){
	  ($i > $paginas) ? false : print '<a href="?pg='.$i.'">'.$i.'</a>';
  }
  mysql_close($db);
  }
?>
 
 </td>
 <td class="pag"><a href="?pg=<?php print $paginas; ?>">Última Página</a></td>
</tr>
</table>

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.