Ir para conteúdo

POWERED BY:

Arquivado

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

kania

Como fazer Select do para pegar dados exatos.

Recommended Posts

Pessoal, bom dia a todos, como faço um select que pegue dados exatos de uma tabela, explico.

Tenho uma tabela com varios capos entre eles:

 

Referencia:

Tipo:

Dormitórios:

Estado:

Cidade:

Preço:

 

link para testes. http://www.nambeimoveis.com/imobiliaria/pesquiza.asp

 

Oque eu quero fazer é assim, se eu naõ selecionar nada do form, ele faz um select normal e traz todos os dados da tabela, esta parte esta funcionando.

Porem se eu selecionar qualquer campo do form ele inicia o filtro, até ai sem problema esta funcionando também, o problema começa quando eu seleciono mais de uma campo, ex. selecionei o campo TIPO=Casa, legal, ele traz somente os imóveis do tipo casa, mas se eu selecionar també, o campo por ex. estado=PR, ele esta trazendo todos os campos do tipo-casa e todos do estado-PR, quando na verdade eu queria que ele troucesse neste caso somente os imóveis do tipo-casa que estão a venda no estado-PR.

 

Abaixo o código que estou usando.

 

caso o usuário não selecione nenhum campo no form

 

tipo = request.Form("tipo")dorm = request.Form("dorm")uf = request.Form("estado")valorI = request.Form("vlrI")valorF = request.Form("vlrF")refe = request.Form("ref")if tipo = "todos" and dorm = "todos" and uf = "todos" and valorI = "" and valorF = "" and refe = "" then	Set rs = server.CreateObject("ADODB.Recordset")	rs.ActiveConnection = conn	rs.Open = "SELECT * FROM cadImovel"

caso o usuário selecio um ou mais campos no form, que é onde não estou conseguindo chegar ao que quero.

 

 

else	Set rs = server.CreateObject("ADODB.Recordset")	rs.ActiveConnection = conn	rs.Open = "SELECT * FROM cadImovel where imovelTipo = '"&tipo&"' or nDormitorios = '"&dorm&"' or estado = '"&uf&"' or ref ='"&refe&"' or preco between '"&valorI&"' and '"&valorF&"';"

ai monto a tbela normalmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara é muito simples...

 

mas ai é so ir fazendo IF e IF...

 

um exemplo:

 

seu campos do formulario

Referencia:Tipo:Dormitórios:Estado:Cidade:Preço:

ai seu codigo:

SQL = "SELECT * FROM cadImovel where 1<>1"If request("dormitorios") <> "" then  sql = sql & " and nDormitorios = '"& request("dormitorios") &"' "end ifIf request("dormitorios") <> "" then  sql = sql & " and nDormitorios = '"& request("dormitorios") &"' "end ifIf request("estado") <> "" then  sql = sql & " and estado = '"& request("estado") &"' "end ifSet rs = server.CreateObject("ADODB.Recordset")	rs.ActiveConnection = conn	rs.Open SQL,conn,3,3

A ideia é essa ai cara... e ai você vai vendo quais campos o cara selecionou...e vai montando sua consulta

 

abracos http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara é muito simples...mas ai é so ir fazendo IF e IF...um exemplo:seu campos do formulario

Referencia:Tipo:Dormitórios:Estado:Cidade:Preço:
ai seu codigo:
SQL = "SELECT * FROM cadImovel where 1<>1"If request("dormitorios") <> "" then  sql = sql & " and nDormitorios = '"& request("dormitorios") &"' "end ifIf request("dormitorios") <> "" then  sql = sql & " and nDormitorios = '"& request("dormitorios") &"' "end ifIf request("estado") <> "" then  sql = sql & " and estado = '"& request("estado") &"' "end ifSet rs = server.CreateObject("ADODB.Recordset")	rs.ActiveConnection = conn	rs.Open SQL,conn,3,3
A ideia é essa ai cara... e ai você vai vendo quais campos o cara selecionou...e vai montando sua consultaabracos http://forum.imasters.com.br/public/style_emoticons/default/joia.gif
Oule! Mas assim fica inviável kra! nesse caso, seriam necessários 720* IF para poder se conseguir montar todas as sequencias possíveis para uma busca. Não tem como fazer um select mais dinâmico e mais prático não?! desse jeito n termina nunk!*são 6 ítens, então 6 x 5 x 4 x 3 x 2 x 1 = 720 IF's! :o

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.