Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ANGELA.BRANCO

Problema com consulta e 5 campos

Recommended Posts

Pessoal a função E(AND) funciona normal e pega os valores compara e mostra certo, a função OU(OR) não sei se estou entendendo errado preciso trazer por exemplo um nome com uma empresa diferente e me trazer os registros que tem aquele nome e aquela empresa, bem o problema é os campos em branco se eu deixo um dos 5 em branco, como por exemplo obs que quase não tem cadastro ele me traz todos do banco, preciso ignorar os campos em branco..

 

$combo = $_POST["opcao"];			   if($combo=='E')		   {		   $query = "SELECT * FROM contatos WHERE nome LIKE '%$nome%' and empresa like '%$empresa%' AND email like '%$email%' AND telefonecom='$telefone' AND obs like '%$obs%'";		   $query = str_replace("like '%%'","!= '#'",$query);		   $sql = mysql_query($query);		   }		   elseif($combo=='OU')		   {		   $query = "SELECT * FROM contatos WHERE nome LIKE '%$nome%' OR empresa like '%$empresa%' OR email like '%$email%' OR telefonecom='$telefone' OR obs like '%$obs%'";		   $query = str_replace("like '%%'","!= '#'",$query);		   $sql = mysql_query($query);		   }
e preciso tb que no campo telefone like '%$telefone%', ele compare no banco o que a pessoa digitar no campo telefone, no banco com mais 4 campos telefonecom, telefonecom2,celular,celular2 tentei fazer assim:

 

"SELECT * FROM contatos WHERE nome LIKE '%$nome%' OR empresa like '%$empresa%' OR email like '%$email%' OR telefone,telefonecom, telefonecom2, celular, celular2 ='$telefone' OR obs like '%$obs%'";, mais não deu certo, se alguem puder me ajudar......

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente, sua pergunta está muito difícil de entender, sem exemplos também... experimente organizar melhor seu código... ajuda bastante...

 

Veja:

 

Considerando que uma firma (Acme) tem um cadastro de clientes e eu desejo saber quais são os clientes que atendam a isso:

 

- tenham o nome "adilson" em qualquer posição do nome;

- sejam de Juiz de Fora

- estejam "negativados" no SPC (ou seja, tenham "NEG" em qualquer lugar na coluna "situacao";

 

Então, eu usaria essa query:

 

select nome, cidade, situacaofrom `acme`.`clientes`where nome like "%ADILSON%"  and cidade like "%JUIZ DE FORA%"  and situacao like "%NEG%"
Isso iria retornar:

 

nome							cidade			  situacao------------------------------- ------------------- ---------------------ADILSON DISUSUDIFUISD		   JUIZ DE FORA		NEGATIVOADIUIS9 ADILSONSO GUSSUDISIEW   JUIZ DE FORA		NEGATIVADO 30/11/2004 COMERCIO DE SUCATAS DO ADILSON  JUIZ DE FORA		NEGATIVO
Agora, se eu quero apenas clientes de Juiz de Fora e negativos, desde que tenham o nome Adilson ou o nome Angelo, usaria:

select nome, cidade, situacaofrom clienteswhere (situacao like "%NEG%"	   and	   cidade like "%JUIZ DE FORA%")  and (nome like "%ADILSON%"	   or	   nome like "%ANGELO%")
Observe o "and", o "or" e os parênteses... pois afetam diretamente o resultado da query...

 

Ok?

 

Espero ter ajudado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.