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

Erro No If Na Busca


DackAle

Pergunta

E ae galera =)

Seguinte em um site tem 3 campos com varias opções

Categoria

Tipo

Local

dentro destes 3 tem varias opções... e a ultima opção dos 3 é "todos"

dai a busca pode variar por exemplo ele escolhe algum valor em categoria, em tipo tb e em local ele escolhe todos, dai nos resultados ele vai me retornar a categoria escolhida junto com o tipo escolhido e todos os locais... dai tentei fazer com if, fico assim

var_categoria = Request.form("f_categoria")
var_tipo = Request.form("f_tipo")
var_local = Request.form("f_local")

Response.Expires = 0

Const intPageSize = 20

If Request.Querystring = "" then
	intCurrentPage = 1
Else
	intCurrentPage = CInt(Request.Querystring("CurrentPage"))
	Select Case Request.Querystring("Submit")
  Case "Previous"
  	intCurrentPage = intCurrentPage -1
  Case "Next"
  	intCurrentPage = intCurrentPage +1
  End Select
End If

Set exe = Server.CreateObject("ADODB.Recordset")
exe.CursorLocation = adUseClient
exe.CursorType = adOpenStatic
exe.CacheSize = intPageSize

if var_categoria= len("todos") AND var_tipo = len("todos") AND var_local = len("todos") then
sql = "SELECT * FROM imoveis ORDER BY bairro, preço DESC"

elseif var_categoria = "todos" AND var_tipo = "todos" then
sql = "SELECT * FROM imoveis WHERE bairro='" & var_local & "' ORDER BY bairro, preço DESC"

elseif var_categoria = "todos" AND var_local = "todos" then
sql = "SELECT * FROM imoveis WHERE tipo='" & var_tipo & "' ORDER BY bairro, preço DESC"

elseif lvar_tipo = "todos" AND var_local = "todos" then
sql = "SELECT * FROM imoveis WHERE categoria='" & categoria & "' ORDER BY bairro, preço DESC"

elseif var_tipo = "todos" then
sql = "SELECT * FROM imoveis WHERE bairro='" & var_local & "' AND categoria='" & var_categoria & "' ORDER BY bairro, preço DESC"

elseif var_categoria = "todos" then
sql = "SELECT * FROM imoveis WHERE tipo='" & var_tipo & "' AND bairro='" & var_local & "' ORDER BY bairro, preço DESC"

elseif var_local = "todos" then
sql = "SELECT * FROM imoveis WHERE categoria='" & categoria & "' AND tipo='" & var_tipo & "' ORDER BY bairro, preço DESC"

else

sql = "SELECT * FROM imoveis WHERE categoria='" & var_categoria & "' AND bairro='" & var_local & "' AND tipo='" & var_tipo & "' ORDER BY bairro, preço DESC"
end if 
exe.Open sql, banco, , , adCmdText

ou seja fi varias verificações com if e elseif, só que quando o "todos" é escolhido ele retorna "o nenhum registro foi encontrado", já se escolher alguma opçãpo nas 3 categorias sem ser o todos ele me retorna normal...

bom quem puder me ajudar podem ver neste LINK tente fazer uma busca com os dados do lado tipo (casa, bela vista, venda) ele retorna normal, mas tenta casa, todos, todos, ele teria que retorna muitos registros, mas ele diz que não encontrou nada... ou seja quando se utiliza o "todos" em alguma categoria não retorna nada...

alguém sabe como posso resolver este erro ? é muito urgente =/

Abraços e valeuuu galera =)

OBS: parte do codigo é de uma paginação... que esta OK

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

hmmm tipo era pra ler o conteudo, mas viajei....rss

confundi tudo ahuahuahu mas já tirei, agora só deixei tipo

if var_categoria= "todos" AND var_tipo = "todos" AND var_local = "todos" then
sql = "SELECT * FROM imoveis ORDER BY bairro, preço DESC"

mas continua não funcionando nada... rsss

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Fiz meio na loucura, mais não custa tentar:

var_categoria = Request.form("f_categoria")
var_tipo = Request.form("f_tipo")
var_local = Request.form("f_local")

Response.Expires = 0

Const intPageSize = 20

If Request.Querystring = "" then
intCurrentPage = 1
Else
intCurrentPage = CInt(Request.Querystring("CurrentPage"))
Select Case Request.Querystring("Submit")
 Case "Previous"
  intCurrentPage = intCurrentPage -1
 Case "Next"
  intCurrentPage = intCurrentPage +1
 End Select
End If

Set exe = Server.CreateObject("ADODB.Recordset")
exe.CursorLocation = adUseClient
exe.CursorType = adOpenStatic
exe.CacheSize = intPageSize

sql = "SELECT * FROM imoveis " 
e = false
onde = false
precisae = false

if var_tipo <> "todos" then
   if e = false then
      sql = sql & "WHERE tipo='" & var_tipo & "' "
      onde = true      
   end if
end if

if var_local <> "todos" then
   if onde = false then
      sql = sql & "WHERE bairro='" & var_local & "' "
      onde = true
   else
      sql = sql & "and bairro='" & var_local & "' "
   end if
end if

if categoria <> "todos" then
   if onde = false then
      sql = sql & "WHERE categoria='" & categoria & "' "
   else
      sql = sql & "and categoria='" & categoria & "' "
   end if
end if

sql = sql & "ORDER BY bairro, preço DESC "
exe.Open sql, banco, , , adCmdText

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,3k
×
×
  • Criar Novo...