rebortec 0 Denunciar post Postado Abril 19, 2011 Boas pessoal, fiz este código: $sql = "SELECT * FROM empresa"; if ($_GET['pesquisa'] == 'Pesquisar') { // busca apenas por nome if ($_GET['o_que'] != " " AND $_GET['onde'] == " ") { $sql .= " WHERE nome LIKE '%".$_GET['o_que']."%' "; } // busca apenas por onde else if ($_GET['o_que'] == " " AND $_GET['onde'] != " ") { $sql .= " WHERE concelho LIKE '%".$_GET['onde']."%' "; } // busca nome e onde else if ($_GET['o_que'] != " " AND $_GET['onde'] != " ") { $sql .= " WHERE nome LIKE '%".$_GET['o_que']."%' AND distrito LIKE '%".$_GET['onde']."%' "; } } // fim do get_buscar $queryEmpresa = mysql_query($sql) or die(mysql_error()); while ($resultado = mysql_fetch_array($queryEmpresa)) { $titulo = $resultado['nome']; echo '<a class="titulo" href="">'.$titulo.'</a>'; Está a funcionar, mas por exemplo assim funciona: if ($_GET['o_que'] != " " AND $_GET['onde'] == " ") { $sql .= " WHERE nome LIKE '%".$_GET['o_que']."%' "; } Mas preciso que pesquise em mais do que uma coluna da tabela e se colocar OR não funciona. Exemplo que não funciona: if ($_GET['o_que'] != " " AND $_GET['onde'] == " ") { $sql .= " WHERE nome LIKE '%".$_GET['o_que']."%' OR categoria LIKE '%".$_GET['o_que']."%' "; } Podem-me ajudar? Por exemplo queria que se procura-se só por onde, pesquisa-se nas colunas (Localidade, CP, Morada, Distrito, Concelho) e o activo='1' Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Abril 19, 2011 Não é or , e sim AND Compartilhar este post Link para o post Compartilhar em outros sites
rebortec 0 Denunciar post Postado Abril 19, 2011 Não é or , e sim AND Com AND também não dá, mas eu que queria mesmo OR porque pode não conter o registo numa coluna e conter noutra. Não é or , e sim AND Com AND também não dá, mas eu que queria mesmo OR porque pode não conter o registo numa coluna e conter noutra. Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Abril 19, 2011 Certo, Ele retorna Algum tipo de Erro ? Compartilhar este post Link para o post Compartilhar em outros sites
rebortec 0 Denunciar post Postado Abril 19, 2011 Certo, Ele retorna Algum tipo de Erro ? Não, apenas não exibe os resultados Compartilhar este post Link para o post Compartilhar em outros sites
rebortec 0 Denunciar post Postado Abril 20, 2011 Será que me poem ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
jpraminelli 3 Denunciar post Postado Abril 20, 2011 cara, eu começaria exibindo o sql pra ter uma ideia do que realmente esta sendo feito... antes de executar a consulta ($queryEmpresa = mysql_query($sql) or die(mysql_error());) exibe o sql e veja onde está o erro. echo $sql; die; se o sql estiver correto e mesmo assim nao exibir nada, entao realmente é pq nao existe dados no bd que atenda a clausula WHERE. mas de qualquer forma faça isso e poste o sql aqui pra gente. Compartilhar este post Link para o post Compartilhar em outros sites
rebortec 0 Denunciar post Postado Abril 20, 2011 cara, eu começaria exibindo o sql pra ter uma ideia do que realmente esta sendo feito... antes de executar a consulta ($queryEmpresa = mysql_query($sql) or die(mysql_error());) exibe o sql e veja onde está o erro. echo $sql; die; se o sql estiver correto e mesmo assim nao exibir nada, entao realmente é pq nao existe dados no bd que atenda a clausula WHERE. mas de qualquer forma faça isso e poste o sql aqui pra gente. Boas Fiz um echo do sql e verifiquei que efectua sempre o ultimo if o que imprime no monitor é : SELECT * FROM empresa WHERE nome LIKE '%%' AND distrito LIKE '%p%' Seja qul for a pesquisa Compartilhar este post Link para o post Compartilhar em outros sites
jpraminelli 3 Denunciar post Postado Abril 20, 2011 humm acho que sei o que pode ser entao nos seus if tem um espaço em branco. if ($_GET['o_que'] != " " AND $_GET['onde'] == " ") { . . } tente tirar o espaço if ($_GET['o_que'] != "" AND $_GET['onde'] == "") { //junte as aspas um na outra . . } ou tbm pode tentar assim if ( !isset($_GET['o_que']) AND !isset($_GET['onde']) ) { . . } faça em todos os seus if veja se resolve Compartilhar este post Link para o post Compartilhar em outros sites
rebortec 0 Denunciar post Postado Abril 20, 2011 Pareec que já está a funcionar era os espaços :) Compartilhar este post Link para o post Compartilhar em outros sites
rebortec 0 Denunciar post Postado Abril 20, 2011 Agora tou com problemas com a pesquisa quando contém por exemplo "ç":s O que posso fazer? Compartilhar este post Link para o post Compartilhar em outros sites