taudujas Postado Julho 27, 2004 Denunciar Share Postado Julho 27, 2004 Pessoal estou querendo aprender a fazer busca usando um select, já vi varios sites assim, por exemplo:Campo de busca ai tem para selecionar a categoria no select e logo mais o botao pesquisar.A duvida é a seguinte: terei o nome do campo busca e no select as categorias, mas como ficaria os valores deste select? ele é ligado com o like?Obs: não estou pedindo pronto, somente gostaria de um esclarecimento.obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 griphon Postado Julho 27, 2004 Denunciar Share Postado Julho 27, 2004 eu faço assim, exemplo:tenho uma tabela "produtos" com os campos:idnomequantidadepreçotipovamos considerar esse campo tipo tendo valores fixos como:cerealfrutalegumesetc...aih eu tenho um select: "Selecionar por tipo:" com os valores possíveis do campo tipo... quando o usuário seleciona um tipo:<script language="JavaScript"> function MudaTipo(Sender) { var pagina; pagina = $PHP_SELF + "?tipo=" + Sender.value + "&pagn=1"; parent.document.location.href = pagina; } </script> <select name="tipo" onchange="mudatipo(this)"> (aqui eu fiz no onchange, mas você pode fazer no onclick de um botão tb...) Envia uma query_string com o valor do tipo. Ae é só você realizar uma busca como essa: if (isset($_GET["tipo"])) { $query = "select * from produtos where tipo = ".$_GET["tipo"]; } else { $query = "select * from produtos"; }ufa... acho que tá meio complicadin né?mas espero tb que esse seja o jeito mais fácil!!falou! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 taudujas Postado Julho 27, 2004 Autor Denunciar Share Postado Julho 27, 2004 Entendi +ou- griphon, esse codigo é colocado em uma pagina somente? ou ele tem que enviar para outra pagina para dar os resultados?? obrigado desde já. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 griphon Postado Julho 27, 2004 Denunciar Share Postado Julho 27, 2004 só em uma...pagina = $PHP_SELF + "?tipo=" + Sender.value + "&pagn=1";e mesmo assim esse não é "o código", você disse que não queria o código então, tentei explicar um pouco... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 taudujas Postado Julho 27, 2004 Autor Denunciar Share Postado Julho 27, 2004 Ah entendi agora, é devido ao $PHP_SELF que ele pega os valores seria essa a logica?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabyo Postado Julho 27, 2004 Denunciar Share Postado Julho 27, 2004 Ah entendi agora, é devido ao $PHP_SELF que ele pega os valores seria essa a logica?? Tulio use :$_SERVER["PHP_SELF"]ou o proprio nome da pagina Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 taudujas Postado Julho 27, 2004 Autor Denunciar Share Postado Julho 27, 2004 Ok Fabyo, agora eu entendi, obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 griphon Postado Julho 27, 2004 Denunciar Share Postado Julho 27, 2004 Fabyo,uma perguntinha...se register_globals estiver off, $PHP_SELF não funciona não? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ppgsalomao Postado Julho 27, 2004 Denunciar Share Postado Julho 27, 2004 Não !Bem como o $REMOTE_ADDR tb não !porque são variaveis globais ! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rog Postado Julho 27, 2004 Denunciar Share Postado Julho 27, 2004 se register_globals estiver off, $PHP_SELF não funciona não?ele vai se encontrar no array $_SERVER$_SERVER['PHP_SELF'] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 griphon Postado Julho 27, 2004 Denunciar Share Postado Julho 27, 2004 obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 taudujas Postado Julho 28, 2004 Autor Denunciar Share Postado Julho 28, 2004 Achei um exemplo aqui:Manuais Seria exatamente isso que gostaria de fazer, vou tentar fazer colocando os valores no select.alguém teria outra sugestão? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Julho 29, 2004 Denunciar Share Postado Julho 29, 2004 Tambem gostaria de ver como é que faiz isso, alguém poderia dar uma luz aih... vlw. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 taudujas Postado Agosto 9, 2004 Autor Denunciar Share Postado Agosto 9, 2004 ninguém poderia me ajudar??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Agosto 9, 2004 Denunciar Share Postado Agosto 9, 2004 Bom, cara, pra fazer isso que você quer eu faria da seguinte forma:Montaria a query com base nos campos de foram preenchidos. Ou seja, só adicionaria o "AND campo like '%valor%' " caso o select correspondente fosse preenchido...Mas posta o código aí de como você estava fazendo... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 taudujas Postado Agosto 9, 2004 Autor Denunciar Share Postado Agosto 9, 2004 Ok Error estou fazendo assim olha:<?include "bd.php" ?><html><head><title>Buscar anuncios - liga Negocios.</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><form name="form1" method="post" action="busca.php"> <table width="66%" border="0"> <tr> <td width="22%"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Busca:</font></strong></td> <td width="19%"><input name="palavra" type="text" id="palavra"></td> <td width="59%"><select name="tabela"> <option value="select">Selecione</option><?$sql = "SELECT nome FROM diversos ORDER BY nome";$exec = mysql_query($sql);while ($array = mysql_fetch_array($exec)){ $tabela = $array['nome']; $tabela = strtoupper($tabela); echo "<option value=\"$tabela\">$tabela</option>\n";}?> </select> <input type=submit" name="Submit" value="Buscar"></td> </tr> </table></form></body></html>Busca.php<?include "bd.php";//pega os dados digitados no formulario$busca = $_POST["busca];$select = $_POST['select'];// seleciona os dados do banco$query = mysql_query("SELECT $busca where nome like '$select'") or die(mysql_error());$contagem = mysql_num_rows($query);// verifica os numeros de linhasif ($contagem == 0) //se for igual a zero{echo "<center><font color = \"#0000FF\">Não Achou Nenhum Registro</font></center><a href=\"javascript:history.go(-1)\"><center>Voltar</center></a>";exit();}else{while ($select= mysql_fetch_array($query)){$nome = $select["nome"];echo "$nome<br>";echo "Erro: ". mysql_error();}}?>Mas não da certo, não retorna erro nem nada. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Agosto 9, 2004 Denunciar Share Postado Agosto 9, 2004 <?include "bd.php";//pega os dados digitados no formulario$busca = $_POST["busca"];$select = $_POST['select'];// seleciona os dados do banco$query = mysql_query("SELECT $busca where nome like '$select'") or die(mysql_error());$contagem = mysql_num_rows($query);// verifica os numeros de linhasif ($contagem == 0) //se for igual a zero{echo "<center><font color = \"#0000FF\">Não Achou Nenhum Registro</font></center><a href=\"javascript:history.go(-1)\"><center>Voltar</center></a>";exit();}else{while ($select= mysql_fetch_array($query)){ //essa linha tem um problema$nome = $select["nome];echo "$nome<br>";echo "Erro: ". mysql_error();}}?>Está vendo a linha que eu marquei?Agora olha a sua query... dentro dessa query você usa a variável $select, que é a mesma que você atribui o valor da mysql_fetch_array(). Então, depois da primeira verificação, isso vai dar erro... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 taudujas Postado Agosto 9, 2004 Autor Denunciar Share Postado Agosto 9, 2004 Mas então por o que que eu teria que mudar ??Retornou este erro:You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'where nome like ''' at line 1 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Agosto 10, 2004 Denunciar Share Postado Agosto 10, 2004 Tá faltando o FROM table Na sua query... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 taudujas Postado Agosto 10, 2004 Autor Denunciar Share Postado Agosto 10, 2004 Error coloquei assim:<?include "bd.php";//pega os dados digitados no formulario$busca = $_POST["busca"];$select = $_POST['select'];// seleciona os dados do banco$query = mysql_query("SELECT FROM $select where nome LIKE '$busca'") or die(mysql_error());$contagem = mysql_num_rows($query);// verifica os numeros de linhasif ($contagem == 0) //se for igual a zero{echo "<center><font color = \"#0000FF\">Não Achou Nenhum Registro</font></center><a href=\"javascript:history.go(-1)\"><center>Voltar</center></a>";exit();}else{while ($select= mysql_fetch_array($query)){$nome = $select["nome"];echo "$nome<br>";echo "Erro: ". mysql_error();}}?>e retornou:You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM '' where nome LIKE ''' at line 1 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ppgsalomao Postado Agosto 10, 2004 Denunciar Share Postado Agosto 10, 2004 Cara ... você precisa selecionar alguma coisa !!Tipo:SELECT * FROM $select where nome LIKE '$busca' Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 taudujas Postado Agosto 10, 2004 Autor Denunciar Share Postado Agosto 10, 2004 Olha agora:<?include "bd.php";//pega os dados digitados no formulario$busca = $_POST["busca"];$select = $_POST['select'];// seleciona os dados do banco$query = mysql_query("SELECT * FROM $select where $busca LIKE '$busca'") or die(mysql_error());$contagem = mysql_num_rows($query);// verifica os numeros de linhasif ($contagem == 0) //se for igual a zero{echo "<center><font color = \"#0000FF\">Não Achou Nenhum Registro</font></center><a href=\"javascript:history.go(-1)\"><center>Voltar</center></a>";exit();}else{while ($select= mysql_fetch_array($query)){$nome = $select["nome"];echo "$nome<br>";echo "Erro: ". mysql_error();}}?>ERRO: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'where LIKE ''' at line 1 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Agosto 10, 2004 Denunciar Share Postado Agosto 10, 2004 Cara, não querendo ser chato, mas aparentemente você não entende como essas queries funcionam...Acho que seria uma boa você pegar uma apostila e dar uma boa lida na parte de conexões e interação com o MySQL...Veja esse tópico: http://www.sosphp.com.br/forum/index.php?s...indpost&p=12543E esse link: http://dev.mysql.com/doc/mysql/pt/SELECT.html E explica aí pra gente o que é essa variável $busca, $select e etc... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 taudujas Postado Agosto 10, 2004 Autor Denunciar Share Postado Agosto 10, 2004 o meu banco é este:CREATE TABLE `diversos` ( `codigo` int(10) unsigned NOT NULL auto_increment, `data` date NOT NULL default '0000-00-00', `categoria` varchar(60) NOT NULL default '', `opnegocio` varchar(40) NOT NULL default '', `nome` varchar(60) NOT NULL default '', `grupo` varchar(40) NOT NULL default '', `valor` varchar(50) NOT NULL default '', `descricao` text NOT NULL, `foto` varchar(200) NOT NULL default '', `contato` varchar(60) NOT NULL default '', `cidade` varchar(50) NOT NULL default '', `uf` char(2) NOT NULL default '', `email` varchar(60) NOT NULL default '', PRIMARY KEY (`codigo`)) TYPE=MyISAM AUTO_INCREMENT=4 ;CREATE TABLE `imoveis` ( `codigo` int(10) unsigned NOT NULL auto_increment, `data` date NOT NULL default '0000-00-00', `categoria` varchar(70) NOT NULL default '', `opnegocio` varchar(40) NOT NULL default '', `tipo` varchar(40) NOT NULL default '', `bairro` varchar(40) NOT NULL default '', `endereco` varchar(60) NOT NULL default '', `valor` varchar(40) NOT NULL default '', `descricao` text NOT NULL, `foto` varchar(200) NOT NULL default '', `contato` varchar(70) NOT NULL default '', `cidade` varchar(40) NOT NULL default '', `uf` char(2) NOT NULL default '', `email` varchar(60) NOT NULL default '', PRIMARY KEY (`codigo`)) TYPE=MyISAM AUTO_INCREMENT=1 ;CREATE TABLE `veiculos` ( `codigo` int(10) unsigned NOT NULL auto_increment, `data` date NOT NULL default '0000-00-00', `categoria` varchar(80) NOT NULL default '', `opnegocio` varchar(80) NOT NULL default '', `modelo` varchar(40) NOT NULL default '', `motor` varchar(40) NOT NULL default '', `anomod` varchar(40) NOT NULL default '', `cor` varchar(30) NOT NULL default '', `valor` varchar(20) NOT NULL default '', `descricao` text NOT NULL, `foto` varchar(200) NOT NULL default '', `contato` varchar(40) NOT NULL default '', `uf` char(2) NOT NULL default '', `email` varchar(60) NOT NULL default '', PRIMARY KEY (`codigo`)) TYPE=MyISAM AUTO_INCREMENT=1 ;A Variavel $busca é o campo onde a pessoa vai digitar as palavras, como d20 por exemplo e select é onde ela vai procurar, na categoria no caso, logo a tabela do banco entendeu? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Agosto 10, 2004 Denunciar Share Postado Agosto 10, 2004 Cara...Mais uma coisa...Não estou vendo nenhum campo com o nome "select" no seu form... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 taudujas Postado Agosto 10, 2004 Autor Denunciar Share Postado Agosto 10, 2004 <?include "bd.php" ?><html><head><title>Buscar anuncios - liga Negocios.</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><form name="form1" method="post" action="busca.php"> <table width="66%" border="0"> <tr> <td width="22%"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Busca:</font></strong></td> <td width="19%"><input name="palavra" type="text" id="palavra"></td> <td width="59%"><select name="tabela"> <option value="select">Selecione</option><?$sql = "SELECT nome FROM diversos ORDER BY nome";$exec = mysql_query($sql);while ($array = mysql_fetch_array($exec)){$tabela = $array['nome'];$tabela = strtoupper($tabela); echo "<option value=\"$tabela\">$tabela</option>\n";}?> </select> <input type="submit" name="Submit" value="Buscar"></td> </tr> </table></form></body></html>esta ai em vermelho. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
taudujas
Pessoal estou querendo aprender a fazer busca usando um select, já vi varios sites assim, por exemplo:
Campo de busca ai tem para selecionar a categoria no select e logo mais o botao pesquisar.
A duvida é a seguinte: terei o nome do campo busca e no select as categorias, mas como ficaria os valores deste select? ele é ligado com o like?
Obs: não estou pedindo pronto, somente gostaria de um esclarecimento.
obrigado.
Link para o comentário
Compartilhar em outros sites
32 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.