|
Artigos > Desenvolvimento de Sites > Paginação em PHP |
![]() |
|||||||||||
Paginação em PHP
1. Crie um arquivo chamado “paginacao.php” ou com outro nome e insira o seguinte conteúdo:
<?
$quant_pg = ceil($quantreg/$numreg);
$quant_pg++;
?>
<div style="padding: 10px;" align="right">
<?
// Verifica se esta na primeira página, se nao estiver
// ele libera o link para anterior
if ( $pg > 0)
{
echo "<a href='#' onclick='f_envia(".($pg-1).")'><b>« anterior</b></a>";
}
else
{
echo "<font color=#CCCCCC>« anterior</font> ";
}
if (($pg - 3) < 1 )
{
$ant = 1;
}
else
{
$ant = $pg - 3;
}
if (($pg + 6) > $quant_pg )
{
$pos = $quant_pg;
}
else
{
$pos = $pg + 6;
}
// Faz aparecer os numeros das página entre o
// ANTERIOR e PROXIMO
for($i_pg=$ant;$i_pg < $pos;$i_pg++)
{
// Verifica se a página que o navegante esta e retira o link
//do número para identificar visualmente
if ($pg == ($i_pg-1))
{
echo " <span>[$i_pg]</span> ";
}
else
{
$i_pg2 = $i_pg-1;
echo " <a href='#' onclick='f_envia($i_pg2)'><b>$i_pg</b></a> ";
}
}
// Verifica se esta na ultima página, se nao estiver ele libera o link para próxima
if (($pg+2) < $quant_pg)
{
echo " <a href='#' onclick='f_envia(".($pg+1).")'><b>próximo »</b></a>";
}
else
{
echo "<font color=#CCCCCC>próximo »</font>";
}
?>
</div>
2. Salve este arquivo e crie o arquivo que exibirá o conteúdo da consulta paginada. Neste arquivo, inclua antes de tudo o seguinte código:
<?
// Incluir os comandos de conexão em banco de acordo com o banco que utiliza
// Incluir a consulta do banco de acordo com a sintaxe da linguagem utilizada
// No exemplo abaixo, a consulta está em Firebird
$tabela = ibase_query( $dbga, "select first ".$numreg." skip ".$inicial." * from TABELA" ) or die('Erro abrindo tabela');
// Segundo select para contar todos os registros
$sql_conta=ibase_query( $dbga, "SELECT *
FROM TABELA") or die( 'Erro abrindo tabela' );
$j = 0;
while (ibase_fetch_row($sql_conta))
$j++;
$quantreg = $j; // Quantidade de registros pra paginação
if ((!isset($pg))||($_POST["pg"]==''))
$pg = 0;
else
$pg=$_POST["pg"];
$numreg = 30; // Quantos registros por página vai ser mostrado
$inicial = $pg * $numreg;
?>
3. Depois da tag <title>, antes de fechar a tag </head>, o seguinte script:
<script type="text/javascript">
function f_envia(nrPagina)
{
window.document.frmBusca.pg.value=nrPagina;
window.document.frmBusca.submit();
}
</script>
<style type="text/css">
<!--
.pgoff {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #FF0000; text-decoration: none}
a.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #003366; text-decoration: none}
a:hover.pg {font-family: Verdana, Arial, Helvetica; font-size: 11px; color: #0066cc; text-decoration:underline}
-->
</style>
4. Inclua um formulário conforme a tag abaixo: <form name="frmBusca" id="frmBusca" method="post" action="index.php"> 5. Para exibir a barra com os números das próximas páginas, inclua o código abaixo (note que você poderá colocar este código no cabeçalho e no rodapé da página).
<?
if ($j > 30)
include("include/paginacao.php"); // Chama o arquivo que monta a paginação. ex: << anterior 1 2 3 4 5 próximo >>
?>
6. Aqui vai o código que utilizará a consulta feita no banco. . 7. Coloque um input hidden e feche a tag form. Pronto! <input type="hidden" name="pg" id="pg" value="" /> </form>
|
||||||||||||
|
||||||||||||
|
|
|
|||||||||||