Paginação de Resultados
Para podermos navegar pelas páginas, devemos criar uma variável que identifique em qual págiana o usário está. Vamos então definir a variável $pagina (identificador de páginas).
Todo resultado (para qualquer consulta) sempre levará o usuário para a primeira página gerada pela paginação, ou seja, o valor inicial do identificador de páginas será $pagina=1; se você usar um formulário para processar a consulta, não esqueça de redirecionar o usuário para a pagina "paginacao.php", por exemplo da seguinte forma:
O importante é lembrar que quando o usuário for encaminhado aos resultados de sua consulta pela primeira vez, deveremos ter $pagina=1. A partir deste ponto, o código torna-se autônomo e encaminhará o usuário adequadamente.
Vamos ao código:
Agora vamos criar os links para as páginas...
Bom proveito...
Todo resultado (para qualquer consulta) sempre levará o usuário para a primeira página gerada pela paginação, ou seja, o valor inicial do identificador de páginas será $pagina=1; se você usar um formulário para processar a consulta, não esqueça de redirecionar o usuário para a pagina "paginacao.php", por exemplo da seguinte forma:
<?php header("Location: paginacao.php?pagina=1"); ?>
O importante é lembrar que quando o usuário for encaminhado aos resultados de sua consulta pela primeira vez, deveremos ter $pagina=1. A partir deste ponto, o código torna-se autônomo e encaminhará o usuário adequadamente.
Vamos ao código:
<?php // início da terceira etapa... // sabemos que o resultado da consulta é um array multidimensional, onde cada linha // representa um registro... // se o usuário está na página 2, devemos exiber as linhas numeradas de 19(inicial) à // 28(final)... // lembre-se que as pagina são numeradas iniciando em 1, mas o array de resultados inicia // em 0(zero)... $linha_inicial = ($pagina - 1) * $total_reg; $linha_final = $linha_inicial + $total_reg - 1; // escrevendo os registros... // vamos usar um arcador para sabermos se estamos entre a linha final e a linha inicial... $marcador = 0; while ($array_result = mysql_fetch_array($result)) { // se o marcador está dentro do intervalo desejado, escrevemos o registro... if ($marcador >= $linha_inicial and $marcador <= $linha_final) { //aqui você personaliza sua saída... } //incrementamos o marcador... $marcador = $marcador + 1; } // fim da terceira etapa... ?>
Agora vamos criar os links para as páginas...
<?php // início da quarta parte... // se estivermos na primeira página, o link "anterior" não precisa linkar nada... if ($pagina == 1) { echo "<font color=\"#999999\"><< anterior</font> |"; } // do contrário, linka a página anterior... else { echo "<< <a href=\"paginacao.php?pagina=".($pagina - 1)."\" targe=\"_self\">anterior</a> |"; } // gerando os números com os respectivos links... $i = 1; while ($i <= $total_paginas) { // a página atual não precisa ser linkada... if ($i == $pagina) { echo " <u>$i</u> "; } // as demais páginas deve ser linkadas... else { echo " <a href=\"paginacao.php?pagina=".$i."\" target=\"_self\">".$i."</a> "; } $i = $i + 1; } // se estivermos na última página, o link "próximo" não precisa linkar nada... if ($pagina == $total_paginas) { echo "| <font color=\"#999999\">próxima >></font>\n"; } // do contrário, linka a próxima página... else { echo "| <a href=\"paginacao.php?pagina=".($pagina + 1)."\" targe=\"_self\">próxima</a> >>\n"; } // fim da quarta etapa... ?>
Bom proveito...
Páginas:
1
2
Gostei muito do tutorial e não encontrei absolutamente nenhuma falha. Mesmo ele sendo grande é muito didático aprendi com você!!!! Parabéns!
24/04/2006 12:21pm
(~18 anos atrás)
Estou com o mesmo problema do mascker, comigo o 1° resultado tb não é mostrado, faz tempo q o artigo foi publicado... mas isso tah me dando uma boa dor de cabeça, se alguém souber, ou poder ajudar... falem ai... pq isso tah me atrasando... e se for mudar de script de paginação, vai dar muito trabalho, pois jah integrei o que queria a paginação ai fica algo complicado. :D
12/02/2005 10:07am
(~20 anos atrás)
$dados = mysql_fetch_array($res);
$id_termos = $dados["id_termos"];
$texto = $dados["texto"];
$texto=nl2br($texto);
13/01/2005 8:13am
(~20 anos atrás)
<? include("conectar.php")?><p>Digite uma palavara relacionada com a peça que você procura.
(Eixo, Pino...)<br>
Se você quiser a lista completa <a href="/itens/relatorio2.php" target="_blank">clique
aqui</a>.</p>
<form method="POST">
Palavra: <input type="text" name="palavra">
<input type="submit" value="Buscar">
</form>
<?
if(!empty($HTTP_POST_VARS['palavra'])) {
$palavra = str_replace(" ", "%", $HTTP_POST_VARS['palavra']); /* Altera os espaços adicionando no lugar o simbolo % */
$qr = "SELECT * FROM lista WHERE descricao LIKE '%".$palavra."%' ORDER BY id DESC";
$sql = mysql_query($qr); // Executa a query no Banco de Dados
$total = mysql_num_rows($sql); // Conta o total ded resultados encontrados
echo "Sua busca retornou '$total' resultados.<br>\n";
echo "<table width=670 border=1 cellpadding=1 cellspacing=1 >";
echo "<tr>";
echo "<th >ID:</th>";
echo "<th >Item:</th>";
echo "<th >Descrição:</th>";
echo "<th >Marca linha familia:</th>";
echo "<th >Estoque:</th>";
echo "<th >A vista:</th>";
echo "<th >A prazo:</th>";
echo "</tr>";
while ($linha=mysql_fetch_array($sql)) {
$id = $linha["id"];
$item = $linha["item"];
$descricao = $linha["descricao"];
$mlf = $linha["mlf"];
$estoque = $linha["estoque"];
$avista = $linha["avista"];
$aprazo = $linha["aprazo"];
echo "<tr>";
echo "<th >$id<br></th>";
echo "<th >$item<br></th>";
echo "<th >$descricao<br></th >";
echo "<th >$mlf<br></th>";
echo "<th >$estoque<br></th>";
echo "<th >$avista<br></th>";
echo "<th >$aprazo<br></th>";
echo "</tr>";
echo "<br>";
}
echo "</table>";
}
//}
?>
(Eixo, Pino...)<br>
Se você quiser a lista completa <a href="/itens/relatorio2.php" target="_blank">clique
aqui</a>.</p>
<form method="POST">
Palavra: <input type="text" name="palavra">
<input type="submit" value="Buscar">
</form>
<?
if(!empty($HTTP_POST_VARS['palavra'])) {
$palavra = str_replace(" ", "%", $HTTP_POST_VARS['palavra']); /* Altera os espaços adicionando no lugar o simbolo % */
$qr = "SELECT * FROM lista WHERE descricao LIKE '%".$palavra."%' ORDER BY id DESC";
$sql = mysql_query($qr); // Executa a query no Banco de Dados
$total = mysql_num_rows($sql); // Conta o total ded resultados encontrados
echo "Sua busca retornou '$total' resultados.<br>\n";
echo "<table width=670 border=1 cellpadding=1 cellspacing=1 >";
echo "<tr>";
echo "<th >ID:</th>";
echo "<th >Item:</th>";
echo "<th >Descrição:</th>";
echo "<th >Marca linha familia:</th>";
echo "<th >Estoque:</th>";
echo "<th >A vista:</th>";
echo "<th >A prazo:</th>";
echo "</tr>";
while ($linha=mysql_fetch_array($sql)) {
$id = $linha["id"];
$item = $linha["item"];
$descricao = $linha["descricao"];
$mlf = $linha["mlf"];
$estoque = $linha["estoque"];
$avista = $linha["avista"];
$aprazo = $linha["aprazo"];
echo "<tr>";
echo "<th >$id<br></th>";
echo "<th >$item<br></th>";
echo "<th >$descricao<br></th >";
echo "<th >$mlf<br></th>";
echo "<th >$estoque<br></th>";
echo "<th >$avista<br></th>";
echo "<th >$aprazo<br></th>";
echo "</tr>";
echo "<br>";
}
echo "</table>";
}
//}
?>
08/07/2004 2:09pm
(~20 anos atrás)
Identifiquei como fazer, na terceira etapa do script coloquem isso:
//aqui você personaliza sua saída...
echo $array_result[0]."<br>";
//aqui você personaliza sua saída...
echo $array_result[0]."<br>";
05/07/2004 12:27pm
(~20 anos atrás)
Segundo o comentário do nosso amigo Ferrugem, como é feita a exibição, pois só mostram os botões e os números das páginas. COMO EXIBIR OS REGISTROS NA PÁGINA?
05/07/2004 10:50am
(~20 anos atrás)
Parabéns, acho muito importânte a programação em php independente do banco de dados, alguns podem não concordar comigo, mas quem trabalha ou já trabalhou com manutênções contínuas de alguma(s) empresa(s) sabe quanto é importante a programação voltada para qualquer banco. Minha sugestão é adaptar este script para classe.
21/06/2004 7:46am
(~20 anos atrás)
Exemplo: 1,2,3...10, ai se clicar em próxima mostrará 11,12,13,14...
Entendeu? Se puder ajudar nessa, desde a já agradeço!
Obrigado e parabéns pelo artigo!