Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
>
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é.
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.
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.
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?
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.. ;)
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");