Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida Query


Ronierick

Pergunta

Pessoal, boa tarde.

Essa é minha primeira postagem aqui no forum, hehehe...

Bem, tenho um sistema de consultas em uma base com banco de dados MYSQL.

O formulário que o usuário submete possui vários campos, só darei o exemplo de 3 campos: Data, UF, Status

Segue minha query:

$result = mysql_query("SELECT * FROM dados where cha_data_criacao like'%09/08/2012%' or est_uf='sp' or status='aberto'");

O meu problema é que o usuário pode selecionar todos os 3 campos, a query vai funcionar perfeitamente e retornar os resultados desejados, mas o usuário pode também, apenas selecionar o campo Data e o campo Status com isso a query não funciona por que o campo de UF estará vazio...Se o usuário consultar só um campo e deixar os outros dois em branco, erro também! Ou seja, a quer só sai perfeita se ele selecionar todos os campos.

Gostaria de que a consulta fosse 100% personalizada, com os campos que o usuário desejar!! Como posso fazer isso?? Obrigado!!

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

o seu próprio código é um exemplo

olha só..

$result = mysql_query("SELECT * FROM dados where cha_data_criacao like'%09/08/2012%' or est_uf='sp' or status='aberto'");

o sinal de = (igual) força uma obrigatoriedade.

utilize o like como foi fito no campo cha_data_criacao.

ficando assim.

$result = mysql_query("SELECT * FROM dados where cha_data_criacao like'%09/08/2012%' or est_uf like '%sp%' or status like '%aberto%'");

Link para o comentário
Compartilhar em outros sites

  • 0
o seu próprio código é um exemplo

olha só..

$result = mysql_query("SELECT * FROM dados where cha_data_criacao like'%09/08/2012%' or est_uf='sp' or status='aberto'");

o sinal de = (igual) força uma obrigatoriedade.

utilize o like como foi fito no campo cha_data_criacao.

ficando assim.

$result = mysql_query("SELECT * FROM dados where cha_data_criacao like'%09/08/2012%' or est_uf like '%sp%' or status like '%aberto%'");
Humm, obrigado!! Mas não funcinou... Eu digitei apenas a data que foi 09/08/2012...ele listou tudo certinho, com a data selecionada e todos os outros campos, sem filtro. Quando digitei a data 09/08/2012 e a UF BA ele está filtrando tudo que há UF=BA eu coloquei um echo na minha query para ver como ela ta ficando e o resultado foi esse:
SELECT * FROM dados where cha_data_criacao like '%09/08/2012%' or cha_status like' ' or cha_classificacao like' ' or est_uf like'BA'

onde estou errando? :(

Editado por Ronierick
Link para o comentário
Compartilhar em outros sites

  • 0
não deveria ter % nos like ?

SELECT * FROM dados where cha_data_criacao like '%09/08/2012%' or cha_status like' ' or cha_classificacao like' ' or est_uf like'BA'

Amigo, continua sem funcionar, mesmo colando os

'%$uf%'
quando tento filtrar pelo dia 09/08/2012 os dados da uf=BA e status= fechado, ele trás tudo!! a query executa está sendo essa:
SELECT * FROM dados where cha_data_criacao like '%09/08/2012%' or cha_status like'%Fechada%' or cha_classificacao like'%%' or est_uf like'%BA%'

:(

Link para o comentário
Compartilhar em outros sites

  • 0

Guenta ai, que vou ver em um sistema meu que tem algo igual a este e funciona e te trago como eu fiz, mas tenho certeza que foi nesse modo, la eu trabalho ocm 4 campos na pesquisa.

tem outro metodo que é o correto que é atribuindo as condições tipo

if(!isset($data)) { $data = null  } else { $data = "like data '%{$data}%''" }

e depois monte a query com as variaveis assim a sua query não fica poluida quando o campo ta vazio.

Editado por JaguA
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...