Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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>