Ir para conteúdo

Arquivado

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

DackAle

Condições

Recommended Posts

E ae galera =)

 

Seguinte, to enforcado isso é muito urgente ahahaha

 

no site www.imobilinet.com.br/demonstracao do lado direito tem uma busca com 4 campos, consegui fazer a busca com os 3 primeiros campos, numa gambiarra desgraça de ifs...rs

 

Agora preciso fazer funcionar a busca com o 4º campo, mas não sei como fazer...

 

o 4º quampo vai ser um select com between para pegar imoveis entra X e Y

 

minha busca ficou assim:

 

<%Response.Expiresabsolute = Now() - 2Response.AddHeader "pragma","no-cache"Response.AddHeader "cache-control","private"Response.CacheControl = "no-cache"var_categoria = trim(request("variasp_categoria"))var_tipo = trim(request("variasp_tipo"))var_local2 = trim(request("variasp_local2"))var_valor= trim(request("variasp_valor"))if NOT var_valor = "todos" thenSQL_V="SELECT * FROM valores WHERE id=" & var_valorset rs_v = server.CreateObject("adodb.recordset")rs_v.open sql_v,conexaovalor01 = rs_v("valor01")valor02 = rs_v("valor02")end ifif var_categoria = "todos" AND var_tipo = "todos" AND var_local2 = "todos" THENsql = "SELECT * FROM imoveis ORDER BY bairro, preco"elseif var_categoria = "todos" AND var_tipo = "todos" THENsql = "SELECT * FROM imoveis WHERE localidade='" & var_local2 & "' ORDER BY bairro, preco"elseif var_categoria = "todos" AND var_local2 = "todos" THENsql = "SELECT * FROM imoveis WHERE tipo='" & var_tipo & "' ORDER BY bairro, preco"elseif var_tipo = "todos" AND var_local2 = "todos" THENsql = "SELECT * FROM imoveis WHERE categoria='" & var_categoria & "' ORDER BY bairro, preco"elseif var_tipo = "todos" THENsql = "SELECT * FROM imoveis WHERE localidade='" & var_local2 & "' AND categoria='" & var_categoria & "' ORDER BY bairro, preco"elseif var_categoria = "todos" THENsql = "SELECT * FROM imoveis WHERE tipo='" & var_tipo & "' AND localidade='" & var_local2 & "' ORDER BY bairro, preco"elseif var_local2 = "todos" THENsql = "SELECT * FROM imoveis WHERE categoria='" & var_categoria & "' AND tipo='" & var_tipo & "' ORDER BY bairro, preco"elsesql = "SELECT * FROM imoveis WHERE categoria='" & var_categoria & "' AND localidade='" & var_local2 & "' AND tipo='" & var_tipo & "' ORDER BY bairro, preco"end if SET RS = Server.CreateObject("AdoDB.RecordSet")RS.Open SQL,Conexao,3,3registros = 10endereco = "busca.asp"rs.cachesize = registros rs.pagesize = registrospagina = request.querystring("pagina")if pagina = "" thenpagina = 1end if%>

lembrando que não posso por o between em todos... pq se o cara selecionar a opção "todos", ele pega todos os preços... dai gera erro na busca...

 

Alguem tem alguma sugestão de como implantar essa ultima busca no meu sisteminha galera ?

 

Valeu galera =)

 

Abraçãoooo

Compartilhar este post


Link para o post
Compartilhar em outros sites

dica, monte o WHERE assim

 

<%if sValor1 <> "" then  sWhere = sWhere & " AND CAMPO1 = '"&sValor1&"'"end ifif sValor2 <> "" then  sWhere = sWhere & " AND CAMPO2 = '"&sValor2&"'"end if'........e assim por diante!!'aqui na instrução você faz assimsql = "SELECT * FROM TABELA WHERE 1=1 " & sWhere'e o resto do seu codigo...%>

o q ele faz? ele monta a instrução, caso a var sWhere fique vazia ele busca todos os registros... entendeu???

 

falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

hmmmm poderia tentar me explicar estas duas partessWhere = sWhere & " AND CAMPO2 = '"&sValor2&"'"ele monta a variavel e utiliza ela nela mesma e em seguinda concatena com um where... mas naum entendi a logica...rssql = "SELECT * FROM TABELA WHERE 1=1 " & sWhereaki naum entendi p WHERE 1=1 e ele concatena com a variavel acima...se puder tentar me explicar fico grato =)Abraçosssssssssss

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo assim... se em cada IF q ele passar e der True na condição ele vai concatenar o valor atual da variaável com o novo... por exemplo

 

<%sWhere = ""if sValor1 <> "" then     sWhere = sWhere & " AND CAMPO1 = '"&sValor1&"'"end if'...aqui a var sWHERE terá o seguinte valor [ AND CAMPO1 = 'VALOR_PASSADO1']if sValor2 <> "" then     sWhere = sWhere & " AND CAMPO2 = '"&sValor2&"'"end if'...aqui a var sWHERE terá o seguinte valor [AND CAMPO1 = 'VALOR_PASSADO1' AND CAMPO2 = 'VALOR_PASSADO2']'...e assim por diante... %>

eu coloquei o WHERE 1=1 pra num precisar fazer outra condição para estar colocando o WHERE dentro da variavel sWhere, entendeu??? Ele simplesmente caso passar por todos os IFs e não der True em nenhuma.... ele pega todos os registros do banco, pois 1 sempre vai ser igual a 1... entendeu??

 

 

falowss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, valeuuuu entendi, bem facil e funcional haahahahah valeu mesm, o codigo final ficou assim =)

 

var_categoria = trim(request("variasp_categoria"))var_tipo = trim(request("variasp_tipo"))var_local2 = trim(request("variasp_local2"))var_valor= trim(request("variasp_valor"))if var_categoria <> "todos" then sWhere = sWhere & " AND categoria = '"& var_categoria &"'"end ifif var_tipo <> "todos" then sWhere = sWhere & " AND tipo = '"& var_tipo &"'"end ifif var_local2 <> "todos" then sWhere = sWhere & " AND localidade = '"& var_local2 &"'"end ifif var_valor <> "todos" thensql2="SELECT * from valores WHERE id=" & var_valorset rs2 = server.createobject("adodb.recordset")rs2.open sql2,conexao sWhere = sWhere & " AND preco between '" & rs2("valor01") & "' AND '" & rs2("valor02") & "'"end ifsql = "SELECT * FROM imoveis WHERE 1=1 " & sWhereSET RS = Server.CreateObject("AdoDB.RecordSet")RS.Open SQL,Conexao,3,3

funcionou mesmo, eu tinha pensando na logica de fazer uma variavel, verifica se tava vazio, se não fazia +/- isso, mas acabei não conseguindo desenvolver (o que faltava er o where 1 = 1)

 

E agora deu certo, valeu por me ajudar =)

 

Abraços

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.