Ir para conteúdo

POWERED BY:

Arquivado

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

Gruger

[Resolvido] Problema em Query

Recommended Posts

Olá pessoal...

 

Estou desenvolvendo um site e encontrei um problema meio chato...

 

busca = Request.QueryString("busca")
categoria = Request.Querystring("categoria")

SQL = "SELECT * FROM download WHERE nome LIKE '%"&busca&"%' OR categoria LIKE '%"&categoria&"%' ORDER BY nome"
rs.Open SQL

Eu não sei onde está o erro...

Ele está buscando sempre na mesma categoria (não importa que valor eu envie pelo formulário - método get) quando a busca é feita pela categoria..

E quando a busca é feita pela variável busca, ele simplesmente lista TODOS os registros do banco de dados...

 

Explicando melhor:

1) categoria é enviada por um link do tipo:

<a href="resultados.asp?categoria=CAT1">CAT1</a>
ao ser clicado.

2) busca é enviada por um formulário e é o valor de um campo de texto que o usuario digita.

 

Uma dúvida:

Se o usuario realizar a busca preenchendo o campo "busca" na pagina anterior a esta, nenhum valor será enviado para "categoria". Qual valor que ela assume em Request.QueryString("Categoria")?

O mesmo vale para busca por categoria...

 

Se a busca é feita por uma string digitada, ela não é feita por categoria, e vice versa...

 

 

Acho que ficou confuso meu texto, mas qualquer coisa que não entendam eu tento explicar melhor..

 

Valeu pessoal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz assim:

busca = Request.QueryString("busca")
categoria = Request.Querystring("categoria")

if len(busca) > 0 then
	 busca = "busca like '%"&busca&"%'"
end if

if len(categoria) > 0 then
	 if len(busca) > 0 then
		  busca = busca & " OR "
	 end if
	 categoria= "categoria like '%"&categoria&"%'"
end if

SQL = "SELECT * FROM download WHERE " & busca & categoria & " ORDER BY nome"
rs.Open SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como a busca é feita por busca OU (excluive OR hehehe) por categoria, eu usei seu código adaptado assim:

 

CODE
busca = Request.QueryString("busca")

categoria = Request.Querystring("categoria")

 

if len(busca) > 0 then

busca = "nome like '%"&busca&"%'"

end if

 

if len(categoria) > 0 then

categoria= "categoria like '%"&categoria&"%'"

end if

 

SQL = "SELECT * FROM download WHERE " & busca & categoria & " ORDER BY nome"

 

Resolvido^^

valeu !

Compartilhar este post


Link para o post
Compartilhar em outros sites

só uma dica,

se não entrar no primeiro IF é pq o nome é nulo, vai ser ordenado pelo quê a tua consulta???

 

coloca assim

"order by nome, categoria"

Compartilhar este post


Link para o post
Compartilhar em outros sites

só uma dica,

se não entrar no primeiro IF é pq o nome é nulo, vai ser ordenado pelo quê a tua consulta???

 

coloca assim

"order by nome, categoria"

nome eh um campo do banco de dados.. ai vai ser ordenado por ele e nao por uma variavel...

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.