Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ae galera, estou me quebrando com uma duvida aqui a respeito de uma apginação que estou fazendo.
Vou mostrar um exemplo simples, sem "visual" até para facilitar o estudo do código.
Eu tenho este arquivo index.php
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="busca2.php">
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="75">Pesquisa:</td>
<td width="425"> </td>
</tr>
<tr>
<td>Nome:</td>
<td><label>
<input name="palavra" type="text" id="palavra" size="50" maxlength="50" />
</label></td>
</tr>
<tr>
<td>Cidade:</td>
<td><label>
<select name="cidade" id="cidade">
<option value="" selected="selected">Escolha a cidade</option>
<option value="Novo Hamburgo">Novo Hamburgo</option>
<option value="Campo Bom">Campo Bom</option>
<option value="Sapiranga">Sapiranga</option>
</select>
</label></td>
</tr>
<tr>
<td> </td>
<td><input name="buscar" type="submit" id="buscar" value="Buscar" /></td>
</tr>
</table>
</form>
</body>
</html>
e tenho este script para busca. busca2.php:
<?php
$conexao=mysql_connect("localhost","root","") or die("Falha na Conexão");
$db=mysql_select_db("banco") or die("Falha ao Selecionar Banco de Dados");
$palavra = str_replace(" ", "%", $_POST["palavra"]);
$cidade = $_POST["cidade"];
$qr = "SELECT * FROM associados WHERE nome LIKE '%".$palavra."%' OR cidade LIKE '%".$cidade."%' ORDER BY id ASC";//Veja este trecho
$tot = mysql_query($qr);
//abaixo linha 14
$pagina = 0;
if(isset($_GET["pagina"])) {
$pagina = $_GET["pagina"];
}
$limite = 2;
$inicio = $pagina * $limite;
$sql = mysql_query("$qr LIMIT $inicio, $limite");
//abaixo linha 15
$total = mysql_num_rows($tot);
$paginas = ceil($total / $limite);
echo "Sua busca retornou $total resultado(s).";
echo "<hr>";
//abaixo linha 17
while($r = mysql_fetch_array($sql)) {
// echo "<hr>";
$id = $r["id"];
$nome = $r["nome"];
$cidade = $r["cidade"];
echo "<br>";
echo "> ";
echo "<a href=\"associados/$nome$id.php\">$nome - $cidade</a>";
}
echo "<br>";
if($pagina > 0) {
$menos = $pagina - 1;
$url = $_SERVER["PHP_SELF"]."?pagina=".$menos;
echo "<a href=\"$url\">Anterior</a>";
}
for($i = 0;$i < $paginas; $i++) { //muda o valor da variavel $i = 1 para $i=0
$url = $_SERVER["PHP_SELF"]."?pagina=".$i;
$numpag = $i+1; // Nova variavel para exibição dos numeros de paginas
echo " | <a href=\"$url\">$numpag</a>"; //muda a variavel $i pela nova variavel $numpag, se não fizer isso sua 1ª pagina será "0" a 2ª "1" ...
}
if($pagina < $paginas - 1) {
$mais = $pagina + 1;
$url = $_SERVER["PHP_SELF"]."?pagina=".$mais;
echo " | <a href=\"$url\">Próxima</a>";
}
?>
Mas o que está acontecendo é o seguinte.
Eu faço a busca por uma palavra ou pela cidade e ele retorna todos os valores da busca e faz paginação dos mesmos.
Eu fiz algumas alterações de teste para buscar somente pela cidade. Neste caso ele retorna os valores certos, porém na hora de ir para a segunda página da paginação, ele retorna todos os valores do banco e faz novamente a paginação.
Alguem pode me ajudar a entender o que está acontecendo?
Muito obrigado.
Carregando comentários...