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
(~20 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
(~21 anos atrás)
$dados = mysql_fetch_array($res);
$id_termos = $dados["id_termos"];
$texto = $dados["texto"];
$texto=nl2br($texto);
13/01/2005 8:13am
(~21 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
(~22 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
(~22 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
(~22 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
(~22 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!