Naty_Za Postado Fevereiro 15, 2007 Denunciar Share Postado Fevereiro 15, 2007 Oi pessoal!!! To com um probleminha.... Pra que sabe programar isso deve ser facinho, porque eu vejo muuuitos sites usando..é algo tão simples... um site de cadastros, com um sistema de busca por filtro..ex: a pessoa procura por caixas, e pode escolher se quer em todo o site ou só em um determinado lugar.http://www.guiaconstruirereformar.com.br/piadas/naty.phpsó que eu não consigo filtrar isso.. quando escrevo "caixas" e deixo pra buscar em todas ele lista certinho, masse eu selecionar uma categoria, ele volta com resultado 0Qual o erro?? me ajudem pls!! <? include("Connections/config.php"); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>natalia</title> </head> <body> <div align="center"> <table width="700" border="1" cellpadding="2" cellspacing="0" bordercolor="#E6E6E6"> <tr valign="top"> <td colspan="2"> </td> </tr> <tr valign="top"> <td width="143" align="left" valign="top" bgcolor="#F8F8F8"><span class="style10"><strong>Buscar Cadastro</strong><br> </span> <form name="form1" method="post" action="naty.php"> <div align="center"> <input name="palavra" type="text" id="palavra"> <strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> <select name="categoria" size="1" id="categoria"> <option value="<? echo "$id"; ?>">- Todas as Categorias -</option> <?php // conexao com o banco de dados aqui.... $sql = mysql_query("SELECT * FROM cat ORDER BY nome ASC"); while($dados = mysql_fetch_array($sql)) { echo' <option value="'.$dados['id'].'">'.$dados['nome'].'</option> ' . "\r\n"; } ?> </select> </font></strong><br> <input type="submit" name="Submit" value="Buscar"> </div> </form> </td> <td width="543" align="left" valign="top"><div align="center"><br> <table width="529" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="529" align="left" valign="top"> <? if (!empty($_POST["palavra"])) { $palavra = str_replace(" ", "%", $_POST["palavra"]); // Altera os espaços adicionando no lugar o simbolo % // Verifica a categoria $sql_cat = ""; if (isset($_POST["categoria"]) && is_numeric($_POST["categoria"])) { $sql_cat = " && id_cat='" . $_POST["categoria"] . "'"; } $qr = "SELECT * FROM piadas WHERE titulo LIKE ('%" . $palavra . "%'" . $sql_cat . ") ORDER BY titulo ASC"; // definimos para buscar no campo1 e ordenar pelo campo que você quiser. $sql = mysql_query($qr) or die (mysql_error()); // Executa a query no Banco de Dados $total = mysql_num_rows($sql); // Conta o total ded resultados encontrados echo "<font face=Verdana, Arial, Helvetica, sans-serif><font size=1>Sua busca retornou <b>$total</b> resultados.</font><br><br>\n"; // mostra quantos resultados retornou e logo depois exibe while ($dados = mysql_fetch_array($sql)) { $campo1 = $dados["titulo"]; $campo2 = $dados["piada"]; $campo3 = $dados["id_cat"]; $campo4 = $dados["cliques"]; $campo5 = $dados["id"]; echo "<font face=Verdana, Arial, Helvetica, sans-serif><font size=1><a href=\"piada.php?id_cat=$campo3&id=$campo5\">$campo1</a> - ($campo4 visualizações)</font><br>"; } } ?> </td> </tr> </table> </div></td> </tr> <tr valign="top"> </tr> </table> </div> </body> </html> obrigadaaNatália Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 15, 2007 Denunciar Share Postado Fevereiro 15, 2007 PAra utilizar 2 valores para buscar você deve usar a sintaxe:SELECT * FROM tabela WHERE coluna1 = '$valor_pra_coluna1' AND coluna2 = '$valor_para_coluna2'O que você tem que notar no seu select é que, o valor que vem da lista tem qu estar declarado no "value"... no value do seu código está uma numereção, por acaso os estados são guardados no BD pela numeração ou pelo nome? se for pelo nome o value deve passar de: <option value="2">Alagoas</option> <option value="4">Amapá</option> <option value="3">Amazonas</option> ...para <option value="Alagoas">Alagoas</option> <option value="Amapá">Amapá</option> <option value="Amazonas">Amazonas</option> ... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Naty_Za Postado Fevereiro 15, 2007 Autor Denunciar Share Postado Fevereiro 15, 2007 Então, mas ele é puxado certinho pelo BD.. na tabela das categorias tem "id" e "nome"mas o erro agora mudou!! agora ele busca certinho na categoria especificada, só que na hora que eu deixo pra buscar em todas as categorias, ele volta com resultado 0.. <? if(!empty($_POST["palavra"])) { $palavra = str_replace(" ", "%", $_POST["palavra"]); // Altera os espaços adicionando no lugar o simbolo % $categoria = $_POST['categoria']; $qr = "SELECT * FROM piadas WHERE titulo LIKE '%".$palavra."%' and id_cat = '$categoria' ORDER BY titulo ASC"; // definimos para buscar no campo1 e ordenar pelo campo que você quiser. e agora???meu ajuda.. pls!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 15, 2007 Denunciar Share Postado Fevereiro 15, 2007 Claro.. na hora que você não seleciona nenhum estado o valor de um dos condicionais passa a ser "" (vazio) e ai a query da problema, o que você pode fazer é testar o valor desse condicional, se ele for diferente de vazio você usa uma query (sem o termo em questão), e ele estiver preenchido, você usa outra (que é a atual)... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Naty_Za Postado Fevereiro 15, 2007 Autor Denunciar Share Postado Fevereiro 15, 2007 bom, o termo em questão é o id_cat né??aonde exatamente que eu mudo isso????desculpe, mas é que to meio perdida nisso!!!obrigadaa.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Naty_Za Postado Fevereiro 15, 2007 Autor Denunciar Share Postado Fevereiro 15, 2007 CONSEGUI!!!!!!!!!!!!!!!!!!! :D :rolleyes: B) <? if(!empty($_POST["palavra"])) { $palavra = str_replace(" ", "%", $_POST["palavra"]); // Altera os espaços adicionando no lugar o simbolo % $categoria = $_POST['categoria']; if (empty($categoria)) { $qr = "SELECT * FROM piadas WHERE titulo LIKE '%".$palavra."%' ORDER BY titulo ASC"; } else { $qr = "SELECT * FROM piadas WHERE titulo LIKE '%".$palavra."%' and id_cat = '$categoria' ORDER BY titulo ASC"; // definimos para buscar no campo1 e ordenar pelo campo que você quiser. } Valeu pelas dicas ESerra!!!!!!!!!!!!!!!!!!!!!!! :P Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Naty_Za Postado Fevereiro 28, 2007 Autor Denunciar Share Postado Fevereiro 28, 2007 Gente, nesse sisteminha de busca, tem a caixa pra pessoa pesquisar, escrever o que quer e um menulist em baixo com as categorias pra pessoa escolher. Como eu faço, pra quando a pessoa não escrever nada na caixa e clicar em buscar em uma determinada categoria, ele aparecer tudo o que tiver daquela categoria.porque hj se eu faço isso, ele volta em branco.. eu queria que voltasse com todos os registros daquela categoria...como fazer??? to postando o código...valewww<? if(!empty($_POST["palavra"])) { $palavra = str_replace(" ", "%", $_POST["palavra"]); // Altera os espaços adicionando no lugar o simbolo % $categoria = $_POST['categoria']; if (empty($categoria)) { $qr = "SELECT * FROM cadastros WHERE titulo LIKE '%".$palavra."%' or servicos LIKE '%".$palavra."%' or palavras LIKE '%".$palavra."%' ORDER BY titulo ASC"; } else { $qr = "SELECT * FROM cadastros WHERE titulo LIKE '%".$palavra."%' or servicos LIKE '%".$palavra."%' or palavras LIKE '%".$palavra."%'and id_cat = '$categoria' ORDER BY titulo ASC"; // definimos para buscar no campo1 e ordenar pelo campo que você quiser. } $sql = mysql_query($qr) or die (mysql_error()); // Executa a query no Banco de Dados $total = mysql_num_rows($sql); // Conta o total de resultados encontrados echo "<font face=Verdana, Arial, Helvetica, sans-serif><font size=2>Sua busca retornou <b>$total</b> resultados.</font><br><br>\n"; // mostra quantos resultados retornou e logo depois exibe while ($dados = mysql_fetch_array($sql)) { $campo1 = $dados["titulo"]; $campo2 = $dados["servicos"]; $campo3 = $dados["id_cat"]; $campo4 = $dados["cliques"]; $campo5 = $dados["id"]; $campo6 = $dados["http"]; $campo7 = $dados["endereco"]; $campo8 = $dados["email"]; $campo9 = $dados["tel"]; echo" <font face=Verdana, Arial, Helvetica, sans-serif><strong><font size=1><a href=\"$campo6\" target=\"_blank\" >$campo1</strong></a></font><br> <i>Serviços: $campo2</i><BR> Endereço: $campo7<BR> Tel: $campo9<BR> Email: <a href=mailto:$campo8>$campo8</a><BR> <BR> "; } } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 28, 2007 Denunciar Share Postado Fevereiro 28, 2007 Faz um teste com a variável, se ela estiver vazia atribui o valor %, pois % é o coringa do MySQL que correponde ao * do Windows... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Naty_Za
Oi pessoal!!! To com um probleminha....
Pra que sabe programar isso deve ser facinho, porque eu vejo muuuitos sites usando..
é algo tão simples... um site de cadastros, com um sistema de busca por filtro..
ex: a pessoa procura por caixas, e pode escolher se quer em todo o site ou só em um determinado lugar.
http://www.guiaconstruirereformar.com.br/piadas/naty.php
só que eu não consigo filtrar isso.. quando escrevo "caixas" e deixo pra buscar em todas ele lista certinho, mas
se eu selecionar uma categoria, ele volta com resultado 0
Qual o erro?? me ajudem pls!!
obrigadaa
Natália
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.