Ir para conteúdo

POWERED BY:

Arquivado

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

Vinicius Cainelli

[Resolvido] Busca com definições

Recommended Posts

Galera, alguém pode ajudar..

 

esse é o código em questão..

 


mysql_query ("SELECT * FROM $tableProdutos WHERE produtoStatus = '1' 
AND produtoCodigo LIKE '%$CampoBusca%'
OR produtoNome LIKE '%$CampoBusca%'
OR produtoMarca LIKE '%$CampoBusca%'
OR produtoCodigo LIKE '%$CampoBusca%'
ORDER BY produtoCodigo ASC");

 

Logo no WHERE, preciso separar os produtos que estão ativos, do que não estão, e mostrar apenas os produtos ativos.. no caso eu tenho um campo na tabela, que chama produtoStatus e os valores são 0 para produtos que não estão ativos, e 1 para produtos ativos...

 

E os outros são os campos onde a query vai buscando as palavras do campo de busca..

 

O que acontece, é que ele me traz todos os produtos, os ativos e os não ativos.. alguém sabe me dizer como posso resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o seu código diz claro o seguinte:

 

ele vai selecionar todos onde o status = 1 e o produto codigo parecido com campo busca

ou parecido com x OU parecido com Y.

 

a programação leva tudo ao pé da letra então você só fez a condição de ativo para a primeira tentativa, para as outras elas apenas vão buscar por coisas parecidas com o valor que você mando

 

sempre depois do OR você tem que repetir a condição do status

 

mysql_query ("SELECT * FROM $tableProdutos WHERE produtoStatus = '1' 
AND produtoCodigo LIKE '%$CampoBusca%' AND produtoStatus = '1'
OR produtoNome LIKE '%$CampoBusca%' AND produtoStatus = '1'
OR produtoMarca LIKE '%$CampoBusca%' AND produtoStatus = '1'
OR produtoCodigo LIKE '%$CampoBusca%' AND produtoStatus = '1'
ORDER BY produtoCodigo ASC");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, alguém pode ajudar..

 

esse é o código em questão..

 


mysql_query ("SELECT * FROM $tableProdutos WHERE produtoStatus = '1' 
AND produtoCodigo LIKE '%$CampoBusca%'
OR produtoNome LIKE '%$CampoBusca%'
OR produtoMarca LIKE '%$CampoBusca%'
OR produtoCodigo LIKE '%$CampoBusca%'
ORDER BY produtoCodigo ASC");

 

Logo no WHERE, preciso separar os produtos que estão ativos, do que não estão, e mostrar apenas os produtos ativos.. no caso eu tenho um campo na tabela, que chama produtoStatus e os valores são 0 para produtos que não estão ativos, e 1 para produtos ativos...

 

E os outros são os campos onde a query vai buscando as palavras do campo de busca..

 

O que acontece, é que ele me traz todos os produtos, os ativos e os não ativos.. alguém sabe me dizer como posso resolver isso?

 

 

Vinicius tenta colocar seu "OR" entre parenteses.

 

mysql_query ("SELECT * FROM $tableProdutos WHERE produtoStatus = '1' 
AND (produtoCodigo LIKE '%$CampoBusca%'
OR produtoNome LIKE '%$CampoBusca%'
OR produtoMarca LIKE '%$CampoBusca%'
OR produtoCodigo LIKE '%$CampoBusca%')
ORDER BY produtoCodigo ASC");

 

Nesse caso ele trará os dados em que o "produtoStatus = '1'" E um dos "LIKES" é "verdadeiro"

 

Caso tenha ajudado positiva ae!

 

até.

Compartilhar este post


Link para o post
Compartilhar em outros sites

NOOOOSSA, sério que tem q ser assim?

 

Pior q eu testei aqui dessa forma que falou, e funcionou... valeu Vinicius Rangel..

 

Não existe uma maneira de simplificar isso?

 

É mais por curiosidade mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade não pois se você transformar isso em uma frase mesmo é bem claro.

 

tem uma piada que diz assim:

 

a esposa fala pro marido, amor vai na padaria e me traga 6 pães se tiver ovos me traga 8.

 

bom se tem ovos o marido vai levar 8 pães.

 

o que eu quis dizer com isso foi, toda linguagem leva tudo ao pé da letra.

tente ler isso como se fosse uma frase e verá que faz sentido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta fazer assim:

 

"SELECT * FROM $tableProdutos WHERE produtoStatus = '1'

AND (produtoCodigo LIKE '%$CampoBusca%'

OR produtoNome LIKE '%$CampoBusca%'

OR produtoMarca LIKE '%$CampoBusca%'

OR produtoCodigo LIKE '%$CampoBusca%')

ORDER BY produtoCodigo ASC"

 

Galera, alguém pode ajudar..

 

esse é o código em questão..

 


mysql_query ("SELECT * FROM $tableProdutos WHERE produtoStatus = '1' 
AND produtoCodigo LIKE '%$CampoBusca%'
OR produtoNome LIKE '%$CampoBusca%'
OR produtoMarca LIKE '%$CampoBusca%'
OR produtoCodigo LIKE '%$CampoBusca%'
ORDER BY produtoCodigo ASC");

 

Logo no WHERE, preciso separar os produtos que estão ativos, do que não estão, e mostrar apenas os produtos ativos.. no caso eu tenho um campo na tabela, que chama produtoStatus e os valores são 0 para produtos que não estão ativos, e 1 para produtos ativos...

 

E os outros são os campos onde a query vai buscando as palavras do campo de busca..

 

O que acontece, é que ele me traz todos os produtos, os ativos e os não ativos.. alguém sabe me dizer como posso resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim sim... eu saquei a lógica disso.. já tinha visto essa forma de desmontar o código pra se entender melhor o que ele faz..

 

De qualquer forma obrigado xará..

 

E valeu Bruno, a sua ajuda também deu certo, e é mais prática.. valeu galera.. já tá resolvido.. ;)

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.