Ir para conteúdo

POWERED BY:

Arquivado

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

betobto

[Resolvido] Busca entre Idade e Valor

Recommended Posts

Bom dia, estou com duvidas de como resolver essa situação

 

 

Esse é o codigo da busca

<%
wgenero		= request.Form("frmGenero")
wmodalidade	= request.Form("frmModalidade")
wraca		= request.Form("frmRacas")
'widade		= request("frmIdade")
wanuncio	= request.Form("frmAnuncio")
wpreco		= request.Form("frmPreco")
wlocalizacao= request.Form("frmLocalizacao")


'response.Write(wpreco)
'response.End()

SQL = SQL & "SELECT * FROM tblAnuncios WHERE cod > 0 "
If wgenero <> "" Then
	SQL = SQL & "AND genero LIKE '"&wgenero&"' "
End If
If wmodalidade <> "" Then
	SQL = SQL & "AND modalidade LIKE '"&wmodalidade&"' "
End If
If wraca <> "" Then
	SQL = SQL & "AND raca LIKE '"&wraca&"' "
End If
If wnascimento <> "" Then
	SQL = SQL & "AND nascimento LIKE '"&wnascimento&"' "
End If
If wanuncio <> "" Then
	SQL = SQL & "AND subcategoria LIKE '"&wanuncio&"' "
End If
If wpreco <> "" Then
	SQL = SQL & "AND BETWEEN preco01 AND preco02 LIKE '"&wpreco&"' "
End If
If wlocalizacao <> "" Then
	SQL = SQL & "AND localizacao LIKE '"&wlocalizacao&"' "
End If

SQL = SQL & " Order By cod ASC"
Set wrs = wcon.Execute(SQL)

If wrs.EOF Then
%>

 

Essa é a estrutura da base de dados ACCESS para os valores....

cod | preco01 | preco 02 | titulo

como fazer a busca entre os valores?

 

até 1000

de 1001 a 2000??

 

como saber o que o cara escolheu?

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim ?

Não entendi bem.

 

Ele digita esses números ? Você está se referindo a variável wpreco ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está fazendo certo.

você verfica o que ele digitou e coloca na Condição do Select.

 

If wgenero <> "" Then
        SQL = " AND genero LIKE '"&wgenero&"' "
End If
If wmodalidade <> "" Then
        SQL = SQL & "AND modalidade LIKE '"&wmodalidade&"' "
End If
If wraca <> "" Then
        SQL = SQL & "AND raca LIKE '"&wraca&"' "
End If
If wnascimento <> "" Then
        SQL = SQL & "AND nascimento LIKE '"&wnascimento&"' "
End If
If wanuncio <> "" Then
        SQL = SQL & "AND subcategoria LIKE '"&wanuncio&"' "
End If
If wpreco <> "" Then
        SQL = SQL & "AND BETWEEN preco01 AND preco02 LIKE '"&wpreco&"' "
End If
If wlocalizacao <> "" Then
        SQL = SQL & "AND localizacao LIKE '"&wlocalizacao&"' "
End If

SQL = SQL & "SELECT * FROM tblAnuncios WHERE cod > 0 " & SQL & " Order by Cod Asc"
Set wrs = wcon.Execute(SQL)

você só tem que por o Select no Final e variável com as condições.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está fazendo certo.

você verfica o que ele digitou e coloca na Condição do Select.

 

If wgenero <> "" Then
        SQL = " AND genero LIKE '"&wgenero&"' "
End If
If wmodalidade <> "" Then
        SQL = SQL & "AND modalidade LIKE '"&wmodalidade&"' "
End If
If wraca <> "" Then
        SQL = SQL & "AND raca LIKE '"&wraca&"' "
End If
If wnascimento <> "" Then
        SQL = SQL & "AND nascimento LIKE '"&wnascimento&"' "
End If
If wanuncio <> "" Then
        SQL = SQL & "AND subcategoria LIKE '"&wanuncio&"' "
End If
If wpreco <> "" Then
        SQL = SQL & "AND BETWEEN preco01 AND preco02 LIKE '"&wpreco&"' "
End If
If wlocalizacao <> "" Then
        SQL = SQL & "AND localizacao LIKE '"&wlocalizacao&"' "
End If

SQL = SQL & "SELECT * FROM tblAnuncios WHERE cod > 0 " & SQL & " Order by Cod Asc"
Set wrs = wcon.Execute(SQL)

você só tem que por o Select no Final e variável com as condições.

 

 

 

Como assim? nao entendi mto bem? como ele faz essa separacao de valores?????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro você está verificando o que está preenchido não é ?

Dae você está colocando as condições na variável SQL.

Depois quando terminar as verificações você Monta o Select com as condições colocadas na variável SQL.

 

Corrigi aqui, por que tinha colocado errado.

QUERY = "SELECT * FROM tblAnuncios WHERE cod > 0 " & SQL & " Order by Cod Asc"
Set wrs = wcon.Execute(QUERY)

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu nao preciso usar BETWEEN nada disso entao

 

se eu tento fazer a busca pelo valor ele me gera o seguinte erro

 

 

Microsoft JET Database Engine erro '80040e14'

 

Instrução SQL inválida. 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' ou 'UPDATE' esperado.

 

/sites/mercadoequestre/site/busca2.asp, line 59

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quiser ir de um valor a outro, você precisa.

Tipo, de 1001 a 2000

 

Mas tipo, aqui que eu nao entendi do seu código:

SQL = SQL & "AND BETWEEN preco01 AND preco02 LIKE '"&wpreco&"' "

O que é preco01 e preco02 ?

Eles nao tem valor algum ali ou tem ?

 

Pq nao eh assim que monta, é assim:

SQL = SQL & "AND CAMPO BETWEEN 1001 AND 2000

Sem o LIKE.

Para que o LIKE ? O que é a variável wpreco ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho varios campos de busca no site....

 

por genero / modalidade / Raça / Idade / Anuncio / Preco / Localizacao..

 

Todos esses tirando o IDADE e PRECO o valor nao eh definido qto os outros....

 

tenho uma tabela para o preço e para a idade....

 

tblPrecoCavalos

cod | preco01 | preco 02 | titulo

 

tblIdadeCavalos

cod | preco01 | preco 02 | titulo

 

ae o cara cadastrou o cavalo com o valor de R$ 2,500.00

 

ae dou as opções para ele buscar

 

até R$ 1.000,00

de R$ 1.001,00 a R$ 5.000,00 mil

de R$ 5.001,00 a R$ 10.000,00 mil

Acima de R$ 10.000,00

 

 

se ele escolher a opção até 1000

fala q a busca nao encontrou resultado

 

se ele escolher a opção de 1001 a 5000

ea entao aparece o animal cadastrado...

 

tendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenho este select q faz a busca para exibicao

 

<select name="frmPreco" class="buscaClasses">
  <option value="" selected="selected"></option>
  <% sqlValor = "SELECT * FROM tblPrecoCavalos ORDER BY cod"
     SET rsValor = wcon.EXECUTE(sqlValor)
     DO WHILE NOT rsValor.EOF	  %>
  <option value="<%=rsValor("cod")%>" class="buscaClasses"><%=rsValor("titulo")%></option>
  <% rsValor.MOVENEXT : LOOP %>
</select>                    

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao, você vai ter que fazer um IF verificando qual é qual.

 

Se WPRECO = Até MIL ENTÃO

Faça tal Condição

SENAO SE WPRECO = 3000 ENTÃO

Faça tal Condição

SENAO SE WPRECO = Até 5000 ENTÃO

Faça tal Condição

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o seu erro atual e em qual linha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

este erro

 

 

Microsoft JET Database Engine erro '80040e14'

 

Erro de sintaxe (operador faltando) na expressão de consulta 'cod > 0 AND preco 'até R$ 1.000,00''.

 

/sites/mercadoequestre/site/busca2.asp, line 60

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique a ortografia. pode ser um nome de coluna Invalido 'sua_coluna'. A coluna a qual você se refere na Base de Dados não foi encontrada.

e se as permissões estão corretas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua string SQL, para ver o que esta sendo passado

 

response.write(SQL)
response.end()

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua string SQL, para ver o que esta sendo passado

 

response.write(SQL)
response.end()

Realize este procedimento e post aqui o resultado

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.