Ir para conteúdo

POWERED BY:

Arquivado

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

.com.br

Consulta com várias condições

Recommended Posts

Estou fazendo um newsletter onde após o preenchimento dos dados do usuário, ele determina sobre quais assuntos gostaria de receber emails.

 

Mas no sistema de envio não estou conseguindo criar a consulta que satisfaça todas todas as possíveis combinações entre as condições.

 

Está mais ou menos assim :

 

cond1 = request.form("condicao1")

cond2 = request.form("condicao2")

 

if cond1 = "true" then

if cond2 = "true" then

sql = "Select nome, email FROM newsletter where assunto1 = true and assunto2 = true"

set rsquery = conn.execute(sql)

else

sql = "Select nome, email FROM newsletter where assunto1 = true"

set rsquery = conn.execute(sql)

end if

end if

 

while not rsquery.eof

 

Set News = Server.CreateObject("SMTPsvg.News")

 

etc ...

 

Nesse código, ela só manda se a cond1 for true e a cond2 for true ou false.

Mas e se a cond1 for false e a cond2 for true ou false ?

 

Ou seja, como eu faço pra criar uma consulta que satisfaça todas as condições possíveis sem criar um código monstruoso ?

Imaginando que são 10 condições e que todas elas podem ser true ou false.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o campo assunto1, assunto2 e assim por diante, você não precisa comparalos se são iguais a true ou false.Então faça assim "Select <todo o codigo aqui> where assunto1 Or assunto2 Or assunto3"Obs.: Se você colocar assunto1 and assunto2 and assunto3 ---> isso faz com q o registro sejá selecionado somente se todos os campos assuntos forem TRUE.E se você colocar assunto1 Or assunto2 ... ------> isso faz com o registro sejá selecionado se algum dos campos assunto(n) estiver TRUE.Entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que entendi sim, tks :) "Select nome, email from tabela where assunto1 = '"&assunto1&"' OR assunto2 = '"&assunto2&"' OR ....Mas, abusando :1. o campo for um valor - no caso lojista=1, consumidor=22. determinado campo permitir múltipla escolha ( estados ) como eu faço pra ele selecionar apenas os valores que eu quero ?Na prática :lojista = request.form("lojista")consumidor = request.form("consumidor")estado = request.form("estado") sql = "Select nome, email FROM clientes where TipoCliente = '"&lojista&"' OR TipoCliente = '"&consumidor&"' OR Estado = '"&estado&"' AND newsletter = true" set rsquery = conn.execute(sql)Do jeito que está acima, está enviando pra todo mundo.

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.