Ir para conteúdo

POWERED BY:

Arquivado

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

Paulo Pimenta

Configurando sql para busca avançada

Recommended Posts

Ola Galera... Estou desenvolvendo um sistema de busca que funciona da seguinte forma:

 

Imagem Postada

 

 

O usuário do site preenche os campos da busca e retorna os resultados da busca..... até aí está funcionando muito bem....

 

Só que o problema é o seguinte se o usuário do site buscar o carro pela marca.... por exemplo: preencher o campo "Marca: VOLKSWAGEN " o sistema não busca somente o campo "Marca".

 

Acredito que só precisa de um detalhe para essa busca funcinar e achu que é alguma configuração besta que não estou acertanto.... eu preciso que ela funcione tanto com todos os campos completos como com alguns campos imcompletos.

 

Eu estou usando o código do recordset da seginte maneira:

 

RECORDSET AVANÇADO....

 

SELECT *

FROM anuncio

WHERE cboMarca = 'marca' AND cboModelo = 'mmodelo' AND preco >='cboFaixaPrecoInicial' AND preco <='cboFaixaPrecoFinal' AND regiao='cboEstado' AND fabricacao >= 'cboAnoModeloInicial' AND fabricacao <='cboAnoModeloFinal'

 

AS variaveis estão assim:

 

Name Dafault Value Run-time Value

marca 1 Request("cboMarca")

mmodelo 1 Request("cboModelo")

cboFaixaPrecoInicial 1 Request("cboFaixaPrecoInicial")

cboFaixaPrecoFinal 1 Request("cboFaixaPrecoFinal")

cboEstado 1 Request("cboEstado")

cboAnoModeloInicial 1 Request.QueryString("cboAnoModeloInicial")

cboAnoModeloFinal 1 Request("cboAnoModeloFinal")

 

--------------

 

Pesquisei na net e achu que tem que configurar "Dafault Value" para exibir todos os registros quando os campos não forem selecionados mas não consegui configurar.....

 

Alguém pode por gentileza me ajudar ja estou semanas tentando resolver esse pepino.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Paulo, o tema é 1 pouco extenso, mas como pelo jeito é MT urgente mesmo, algumas dicas iniciais:

1. Entre em “Server Behaviors” – selecione o recordset que efetua a busca, d 1 duplo clique p/ edita-lo e em “Filter” selecione o campo para a busca (no teu caso, por exemplo, “marca”);

2. Qto a default value você é q preenche qdo quiser q seja exibido algum conteúdo qdo o usuário não escolher nenhum, ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Paulo, o tema é 1 pouco extenso, mas como pelo jeito é MT urgente mesmo, algumas dicas iniciais:

1. Entre em “Server Behaviors” – selecione o recordset que efetua a busca, d 1 duplo clique p/ edita-lo e em “Filter” selecione o campo para a busca (no teu caso, por exemplo, “marca”);

2. Qto a default value você é q preenche qdo quiser q seja exibido algum conteúdo qdo o usuário não escolher nenhum, ok?

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Fernando muito obrigado pela ajuda você entendeu o que eu queria....

 

Mas agora eu só tenho uma pergunta...

 

Eu tenho cadastrado mais de 500 marcas de carros e o problema é o seguinte não posso colocar um valor fixo no Default Value...

Por exemplo o Carro "Kombi" representa o número "709" no banco de dados e se eu colocar o 709 no Default Value somente veículos kombis irão aparecer caso não preencha o campo modelo.

 

Eu já tentei como no "Default Value" 1+2+3+4+5+67+8+9+0 para ver se dava certo mas não deu. teria como montar um esquema para esse valor no Default Value não ser fixo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Paulo

 

Olha, sobre o valor padrão acho q não expliquei direito, mas t proponho o seguinte:

deixe isso d lado p/ enquanto, eu preparei 1 passo-a-passo bem simples; tente q acho q vamos conseguir:

 

BUSCA AVANÇADA COM DREAMWEAVER E ASP

 

1. Crie na página onde vão digitados os termos da busca, um campo de texto para cada palavra a ser procurada no bd; dê a esses campos nomes fáceis de lembrar (ex: marca, modelo);

 

2. Configure o formulário para o método GET, e em “action” digite a página de exibição dos resultados; salve essa página;

 

3. Abra (ou crie) a página onde os resultados serão exibidos e crie um recordset (pelo painel “Server behaviors”);

 

4. Na tela q surge, defina um nome para o recordset, a conexão e a tabela do bd onde será efetuada a busca.

 

5. Em “filter” você já pode definir o 1º campo para a busca (no exemplo, marca), defina no campo da direita o sinal de igual ( = ); nos campos de baixo você vai declarar que esse valor será obtido de um formulário (no Dreamweaver 8, “Form Variable”) e no campo da direita declare o nome do campo da página de busca (marca, em nosso exemplo); em “Sort” você pode definir uma ordem para a exibição.

 

6. Teste a consulta; o dreamweaver solicitará que você digite 1 palavra a ser pesquisada.

 

7. Feito o teste, se td estiver ok, salve as aletrações. agora acione o modo avançado – nessa mesma tela;

 

8. Observe que já estará pronta a consulta SQL (quadro "SQL"). Mais abaixo, em “Database Itens” selecione a tabela e o segundo campo a ser pesquisado (em nosso caso “modelo”); clique em “Where” – o texto “AND modelo” (sem aspas) será adicionado ao código da consulta.

 

9. Agora vem o pulo-do-gato: é preciso definir um nome dentro da consulta (um "alias") para essa variável; use o comando LIKE ‘var’ (por exemplo) - com aspas simples.

 

10. No quadro logo abaixo (“Variables”) clique no sinal de + para acrescentarmos e definirmos essa variável e relacioná-la ao campo do formulário de consulta (passo 1);

 

11. Na 1ª caixinha à esquerda, declare o nome da variável “var”; em valor padrão você pode digitar o operador coringa (%) e mais à direita (em Run-Time Value) copie a linha de cima (Request.QueryString) alterando o nome do campo (no caso, “marca” por “modelo” – atenção: aqui use aspas duplas);

 

12. você pode testar a consulta, se surgir a expressão “nenhum dado” (ou “no data”) está correto (pq na verdade ainda não foi enviado nenhum conteúdo para a busca); agora você deve salvar a página e testar a consulta no navegador.

 

13. Se td estiver ok, você já pegou o jeito; agora você pode tentar acrescentar outros campos na pag de busca e no recordset de busca avançada; acho q o esquema seria esse mesmo, ok?

 

Fontes: Dreamweaver MX, Fernando medeiros, Érica, pgs. 217-227.

[ ] e êxito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa...beleza.

 

Troque os request....por request.form

 

Exemplo :

 

marca 1 Request("cboMarca")

 

Por

 

marca 1 Request.Form("cboMarca")

 

O Select tem que ter o nome "cboMarca" entendeu... ??

 

o Requset.Querystring somente servirá se a variavel estiver setada na URL....

 

Exemplo :

 

http://www.seusite.com.br/carros.default.asp?Marca=kombi

 

Ficaria Request.Querystring("Marca")

 

[]

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao necessariamente precisa trocar pois o request ele assume tanto o .form quanto o .querystring ou cookie ou outras colecoes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Traqnuilo Morpheus#2005, é como eu disse ele vai mudando de coleçao em busca daquele valor, logico que se voce especificar tem uma ganho, pequeno mas é um ganho, de perfomance pois ja seré buscado na coleçao correta

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.