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

Consulta por vários checkbox em um mesmo campo


Guest --André --

Pergunta

Guest --André --

ola,

estou fazendo um consulta no banco de dados utilizando um conjunto de 12 checkbox que direcionam para um mesmo campo, neste caso categoria, as quais posso consultar por uma ou mais categorias ao mesmo tempo e ainda pelo ano de cadastro do registro.

a criação do select não trouxe problemas, quando seleciono por varios campos sem a restrição do ano ocorre tudo bem, mas quando uso o campo ano como parametro acontecem 3 situações.

1) se apenas uma categoria é usada como parametro, se esta não cumpre o solicitado a consulta é nula.

2) se seleciono uma categoria que cumpra com o solicitado ela retorna os valores da consulta.

3) mas se uso mais de uma categoria, o resultado não leva em conta o ano solicitado e retorna todos os registros relacionados com a categoria.

neste banco existem apenas 5 registros onde o ano é 2008

veja abaixo o exemplos de sql (de acordo com a lista acima):

1) select * from cadastro where categoria like 'Sub 21 Feminino' and ano like '2008' order by clube, categoria, nome - neste caso não retorna nenhum registro - sendo compatível com os registros do banco.

2) select * from cadastro where categoria like 'Mirim Feminino' and ano like '2008' order by clube, categoria, nome - neste caso retorna 1 registro - sendo compatível com os registros do banco.

3) select * from cadastro where categoria like 'Mini Feminino' or categoria like 'Mini Masculino' or categoria like 'Mirim Feminino' or categoria like 'Mirim Masculino' or categoria like 'Sub 21 Feminino' or categoria like 'Sub 21 Masculino' and ano like '2008' order by clube, categoria, nome - neste caso retorna 885 registro - não sendo compatível com os registros do banco.

Obrigado

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Guest --André --
Faça o seguinte teste:

select categoria, ano from cadastro where categoria like 'Mini Feminino' and categoria like 'Mini Masculino' and ano like '2008'

Obrigado pela ajuda, mas não funcionou, e eu preciso é do select * pois necessito de mais campos.

Link para o comentário
Compartilhar em outros sites

  • 0

tipo separa os filtros com AND deixando entre parenteses. senao ele confunde os ORs com os ANDs.

outra coisa, se o ano é do tipo numero, ele não pode ir entre aspas e nem com LIKE, tem q ser com =.

tipo assim:

select * from cadastro where (categoria like 'Mini Feminino' or categoria like 'Mini Masculino' or categoria like 'Mirim Feminino' or categoria like 'Mirim Masculino' or categoria like 'Sub 21 Feminino' or categoria like 'Sub 21 Masculino') and ano = 2008 order by clube, categoria, nome

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --André --
tipo separa os filtros com AND deixando entre parenteses. senao ele confunde os ORs com os ANDs.

outra coisa, se o ano é do tipo numero, ele não pode ir entre aspas e nem com LIKE, tem q ser com =.

tipo assim:

select * from cadastro where (categoria like 'Mini Feminino' or categoria like 'Mini Masculino' or categoria like 'Mirim Feminino' or categoria like 'Mirim Masculino' or categoria like 'Sub 21 Feminino' or categoria like 'Sub 21 Masculino') and ano = 2008 order by clube, categoria, nome

Obrigado pela ajuda, eu já tinha resolvido a situação usando o union, mas com esta string ela fica mais limpa vou fazer as alterações necessárias para poder usa-lá.

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,2k
    • Posts
      652k
×
×
  • Criar Novo...