lilidias 0 Denunciar post Postado Julho 20, 2010 Boa tarde, Eu tenho uma pagina de busca que estou tentando implementar paginação. O que está acontecendo é que ao buscar um nome ele retorna os dados na primeira página.Quando clico na segunda página ele nao retorna o resultado, apesar de eu passar a variavel da busca no link da proxima pagina.Mas ai se no campo busca eu digitar o nome ele mostra os resultados da segunda página. Tentei colocar o metodo como "GET" e nao funciona.Ele nao retorna nenhum resultado e direciona para a pagina principal . Já estou desesperada, nao sei o q fazer.Me ajudem por favor.Segue o script.Agradeço desde já. Ah, o banco é mysql. <script type="text/javascript"> function confirmar(query){ if(window.confirm("Deseja Realmente Excluir?")){ window.location="excluir_busca_nome_db.php"+ query; return true; } else { window.location="menu.php?pag=buscar_nome" return false; } } </script> <form method="POST"> <font color="#000000" face="Arial, Helvetica, sans-serif" size="3"> <strong> Busca de Cadastrados</strong> </font><br /><br /> <font color="#666666" face="Arial, Helvetica, sans-serif" size="3"> <strong> Buscar por Nome:</strong> </font><input type= "text" name="palavra" size="30"> <input type="submit" value=" " border="0" style="border:0;width:80px; height:22px; background-image:url(../imagens/buscar.gif)"> </form> <?php $conexao = mysql_connect("localhost", "kleber", "kleber"); $db = mysql_select_db("kleber"); if(!empty($HTTP_POST_VARS["palavra"])) { $palavra = str_replace(" ", "%", $HTTP_POST_VARS["palavra"]); /* Altera os espaços adicionando no lugar o simbolo % */ $palavra = $_REQUEST["palavra"]; $pagina = $_GET["pagina"]; if($pagina == "") { $pagina = "1"; } // Maximo de registros por pagina $maximo = 3; // Calculando o registro inicial $inicio = $pagina - 1; $inicio = $maximo * $inicio; $qr2 = "SELECT * FROM CADASTRADO WHERE nome LIKE '%".$palavra."%' ORDER BY id_cadastrado asc"; // Executa a query no Banco de Dados $sql2 = mysql_query($qr2); // Conta o total de resultados encontrados $total2 = mysql_num_rows($sql2); if($total2 <= 0) { echo "<center> Nenhum registro encontrado.</center>"; } else { $qr = "SELECT * FROM CADASTRADO WHERE nome LIKE '%".$palavra."%' ORDER BY id_cadastrado asc LIMIT $inicio,$maximo"; $sql = mysql_query($qr); $total = mysql_num_rows($sql); echo "<font color='#666666' face='Arial, Helvetica, sans-serif' size='3'> Sua busca retornou $total2 resultados. <br/> <br/>"; ; // Gera o Loop com os resultados echo "<table align='center' border='1' style='border-collapse:collapse; font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #FFF;'>"; echo "<tr align='center' bgcolor='#9d1809'>"; echo "<td><strong> Id </strong></td>"; echo "<td><strong> Nome </strong></td>"; echo "<td><strong> Sexo </strong></td>"; echo "<td><strong> Estado Civil </strong></td>"; echo "<td><strong> Endereço </strong></td>"; echo "<td><strong> Número </strong></td>"; echo "<td><strong> Complemento </strong></td>"; echo "<td><strong> Bairro </strong></td>"; echo "<td><strong> Cidade </strong></td>"; echo "<td><strong> Estado </strong></td>"; echo "<td><strong> Cep </strong></td>"; echo "<td><strong> Data de Nascimento </strong></td>"; echo "<td><strong> E-mail </strong></td>"; echo "<td><strong> Telefone </strong></td>"; echo "<td><strong> Telefone Celular </strong></td>"; echo "<td><strong> Telefone Comercial </strong></td>"; echo "<td><strong> Profissão </strong></td>"; echo "<td><strong> Orkut </strong></td>"; echo "<td><strong> Data de Cadastro </strong></td>"; echo "<td><strong> </strong></td>"; echo "<td><strong> </strong></td>"; echo "</tr>"; while($r = mysql_fetch_array($sql)) { echo " <tr align='center' style='font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #000;'> "; echo "<td>"; echo $r["id_cadastrado"]; echo "</td>"; echo "<td>"; echo $r["nome"]; echo "</td>"; echo "<td>"; echo $r["sexo"]; echo "</td>"; echo "<td>"; echo $r["estado_civil"]; echo "</td>"; echo "<td>"; echo $r["endereco"]; echo "</td>"; echo "<td>"; echo $r["numero"]; echo "</td>"; echo "<td>"; echo $r["complemento"]; echo "</td>"; echo "<td>"; echo $r["bairro"]; echo "</td>"; echo "<td>"; echo $r["cidade"]; echo "</td>"; echo "<td>"; echo $r["estado"]; echo "</td>"; echo "<td>"; echo $r["cep"]; echo "</td>"; echo "<td>"; echo $r["data_nascimento"]; echo "</td>"; echo "<td>"; echo $r["email"]; echo "</td>"; echo "<td>"; echo $r["telefone"]; echo "</td>"; echo "<td>"; echo $r["tel_celular"]; echo "</td>"; echo "<td>"; echo $r["tel_comercial"]; echo "</td>"; echo "<td>"; echo $r["profissao"]; echo "</td>"; echo "<td>"; echo $r["orkut"]; echo "</td>"; echo "<td>"; echo $r["data_cadastro"]; echo "</td>"; echo "<td> <a href='alterar.php?id_cadastrado=$r[id_cadastrado]'>Editar</a> </td>"; echo "<td> <a href=\"javascript:confirmar('?id_cadastrado=$r[id_cadastrado]')\">Excluir</a> </td>"; echo "</tr>"; } echo "</table>"; } // Calculando pagina anterior $menos = $pagina - 1; // Calculando pagina posterior $mais = $pagina + 1; $pgs = ceil($total2/$maximo); ?> <? if($pgs > 1 ) { // Mostragem de pagina if($menos > 0) { echo "<a href=\"menu.php?pag=buscar_nome&pagina=" . $menos . "&palavra=" . $palavra . "\" >Anterior</a>"; } // Listando as paginas for($i=1;$i <= $pgs;$i++) { if($i != $pagina) { echo " <a href=\"menu.php?pag=buscar_nome&pagina=".($i)."&palavra=" . $palavra . "\" >$i</a>"; } else { echo " <strong>".$i."</strong>"; } } if($mais <= $pgs) { echo " <a href=\"menu.php?pag=buscar_nome&pagina=" . $mais . "&palavra=" . $palavra . "\">Próxima</a>"; } } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Y. 0 Denunciar post Postado Julho 20, 2010 tenta mudar isso: if(!empty($HTTP_POST_VARS["palavra"])) { $palavra = str_replace(" ", "%", $HTTP_POST_VARS["palavra"]); /* Altera os espaços adicionando no lugar o simbolo % * por isso: if(!empty($_REQUEST["palavra"])) { $palavra = str_replace(" ", "%", $_REQUEST["palavra"]); e apague a linha $palavra = $_REQUEST["palavra"]; Acho que ele não está entrando nesse if na paginação pois a requisição vem por GET... Só cuidado com essa query... está passivel de SQL Injection Compartilhar este post Link para o post Compartilhar em outros sites
lilidias 0 Denunciar post Postado Julho 20, 2010 Rogério, Muito obrigada, deu certinho. Tava ficando louca já com isso. Abraços. Compartilhar este post Link para o post Compartilhar em outros sites