Paginação de resultados
Bom dia pessoal.
Estou com uma dificuldade com paginação, peguei um código bem legal no site PHPBrasil sobre o assunto, foi o melhor código que eu encontrei na net. Funcionou muito bem, porem quando eu coloquei um campo para procura começou meus problemas, meu código é este:?
<?php
# session_start();
$conn = mysql_connect("localhost","root","123");
$banco = mysql_select_db("loja");
?>
<?php
$busca = "SELECT * FROM tbusuarios WHERE nome LIKE '$textfield%' ORDER BY codigo";
?>
<?php
$total_reg = "3"; // número de registros por página
?>
<?php
if (!$pagina) {
$pc = "1";
} else {
$pc = $pagina;
}
?>
<?php
$inicio = $pc - 1;
$inicio = $inicio * $total_reg;
?>
<?php
$limite = mysql_query("$busca LIMIT $inicio,$total_reg");
$todos = mysql_query("$busca");
$tr = mysql_num_rows($todos); // verifica o número total de registros
$tp = $tr / $total_reg; // verifica o número total de páginas
$total= ceil($tr /$total_reg )-1;
// vamos criar a visualização
while ($dados = mysql_fetch_array($limite)) {
$nome = $dados["nome"];
$codigo = $dados["codigo"];
echo "$codigo || $nome<br>";
}
?>
<form name="form1" method="post" action="">
<input type="text" name="textfield">
<input type="submit" name="Submit" value="Enviar">
</form>
<p> </p>
<p> </p>
<table width="10%" border="0" cellspacing="1" cellpadding="1">
<tr>
<?
if ($pc>1) {
?>
<td><a href='?pagina=<?echo $proximo;?>'><img src="Img_sistem/First.gif" width="18" height="13" border="0"></a></div></td>
<?
}
?>
<?
// agora vamos criar os botões "Anterior e próximo"
$anterior = $pc -1;
$proximo = $pc +1;
if ($pc>1) {
?>
<td><a href='?pagina=<?echo $anterior;?>'><img src="Img_sistem/Previous.gif" width="14" height="13" border="0"></a></div></td>
<?
}
if ($pc<$tp) {
?>
<td><a href='?pagina=<?echo $proximo;?> ?procura=><?$procura;?>'><img src="Img_sistem/next.gif" width="14" height="13" border="0"></a></div></td>
<td><a href='?pagina=<?echo $total+1;?>'><img src="Img_sistem/Last.gif" width="18" height="13" border="0"></a></div></td>
<?
}
?>
</tr>
</table>
<p></p>
acontece que na primeira vez que abre a tela vem todos o resultado do banco de dados, se você clicar nas setas verá que funciona corretamente, porem se você não estiver na primeira página e fizer uma pesquisa a pesquisa virá em branco, se fizer a pesquisa na primeira página vira o resultado, porem ao clicar nos botões de navegação você vai perceber que foi carregado o banco inteiro somente o select fez uma ordenação. Alguém tem um código de paginaçõe decente, ou sabe como resolver este problema?
>
Discussão (17)
Carregando comentários...