Shopping Hospedagem Fórum Contato
     
   O portal do desenvolvedor ASP Florianópolis-SC, Quinta-feira - 13 de Dezembro de 2018  
Busca

Menu do site
Efetuar Login
Usuário:

Senha:

 Esqueceu a senha?
Login automático

 Cadastre-se
Procura de várias palavras numa base de dados
Avaliações: 4   -   Minha nota: Média Geral: 26  
 

Estava precisando de um método para fazer buscas em bases de dados simples, que me permitisse criar um formulário de busca, onde o visitante colocasse uma ou várias palavras, e a busca fosse efetuada por cada uma dessas palavras.
Após procurar por diversos sites da especialidade, não encontrei nada satisfatório, por isso coloquei as mãos à obra, e criei algo que quero partilhar com quem possa precisar.

Usei uma base de dados em MSAccess, pois era para ser utilizado numa coisa bastante pequena. Se por acaso for usar bases de dados mais poderosas, como MySQL, MSSQL, ou ORACLE, elas já têm incluidas funções próprias de busca, que poderão de forma mais fácil obter os mesmos resultados que vou obter com este ASP.

Vamos então trabalhar com uma base de dados em MSAccess. Este exemplo é o mais simples possível. É uma base de dados com apenas 1 tabela, que tem apenas 1 campo.

Coluna :: Tipo
Texto :: Text

O meu problema nas buscas em bases de dados era que se o visitante colocasse 2 palavras, por exemplo, "Microsoft Access", não era efetuada uma busca pela palavra "Microsoft" e pela palavra "Access", mas sim uma busca pela frase "Microsoft Access". Tinha que dividir a string. O único método que encontrei fazia a divisão das palavras, mas era sensível à ordem das mesmas, isto é, não era indiferente procurar "Microsoft Access" ou "Access Microsoft". Ele fazia a busca de "Microsoft" e, quando encontrava, procurava nesse campo apenas a seguir à palavra "Microsoft" a palavra "Access". Se "Access" estivesse antes de "Microsoft", ele não encontrava.

O método que criei é bastante simples. É feita uma procura dos espaços na string de busca, e as palavras são divididas tendo em conta esses espaços. Cada palavra é adicionada à declaração de SQL, uma a uma, garantindo assim uma independência na busca às palavras.

Chamo a atenção que isto é um exemplo muito básico. Para utilização num cenário real, não devem ser usadas tantas passagens de código ASP para código HTML, por exemplo, já que o uso do response.write é mais eficiente do que essa passagem.

Faça o download deste exemplo
AQUI, e teste a busca com as frases "Windows server" e "server Windows", ou então, "2000 pro" e "pro 2000", e verifiquem que a busca é independente da ordem em que as palavras se encontram no campo da base de dados, e na frase da busca.

Passemos então à análise do código.

Arquivo: search.asp

Bom trabalho e ... Divirta-se ! Se não se diverte a programar, então porque é que o faz ?

José Marques é um web developer, e um dos fundadores da empresa C4F
(
www.C4F.pt, disponível no final de Janeiro de 2001), onde cria soluções em ASP.

 
 
 





SuperASP do Brasil Ltda

03.066.522/0001-84
Av. Rio Branco 433 - Centro - Florianopolis - SC
Contato

© 2001/2008 - Superasp do Brasil Ltda. Todos os direitos reservados