Tenho uma busca já pronta e funcionando onde quando a pessoa digitar um valor composto por exemplo:
olho azul
A busca é por duas palavras distintas, por olho separado do azul (mas no script ela procura sepadamente, ams depois junta a busca)
Mas gostaria de fazer algo para quando a pessoa digitar olho+azul, fosse procurado a palavra em conjunto olho azul.
Por isso não sei como fazer para reconhecer o "+", tratar a palavra composta.
Já pensei e para cada palavra que achar criar um array para ela (para não perder a palavra anterior), seria um caminho?
Pois seria uma boa alternativa, pois poderia ter um check na busca da frase exata e busca por palavra.
Seria muito complicado fazer assim?
Mas o meu grande Problema mesmo... pelo o que viu é criar uma variavel para cada palavra digitada
Posso fazer como?
Abaixo esta uma parte do programa de busca, somente a parte que separa as palavras
'definimos todas as variáveris que vamos usar na
'criação da declaração de SQL
dim espaco
dim cada_palavra
dim comp
dim retirar
'Começamos por retirar os espaços a mais à esquerda
'e à direita da string de busca
busca = trim(busca)
'Vamos retirar da string de busca cada uma das palavras
'existentes. Para isso, vamos separar cada uma das palavras,
'e só paramos quando já não existirem espaços na string.
'Se não existem espaços, é porque só existe uma palavra.
do until instr(1,busca,chr(32)) = 0
'Começamos por verificar em que posição está o espaço
'mais à esquerda.
espaco = instr(1,busca,chr(32))
'Retiramos da String apenas uma palavra, e
cada_palavra = left(busca,espaco-1)
'adicionamos essa palavra à busca na declaração de SQL
SqlJunk = SqlJunk & " title LIKE '%" & cada_palavra & "%' and"
'Verificamos o comprimento total da string,
comp = len(busca)
'para determinar qual o comprimento depois de ter retirado
'uma palavra.
retirar = comp - espaco
'A string que vai passar a ser usada será a inicial
'menos a palavra já colocada na declaração de SQL.
busca = right(busca,retirar)
'Vamos fazer isto até sobrar apenas uma palavra.
loop
'Quando sobrar só uma palavra, ou se desde início só
'existir uma, ela será adicionada neste ponto à
'declaração de SQL.
SqlJunk = SqlJunk & " title LIKE '%" & busca & "%'"
'Ordenamos os registos que vamos obter alfabeticamente,
'para mais fácil leitura.
SqlJunk = SqlJunk & " ORDER BY title"
'executamos a declaração de SQL para obtermos a informação
'pretendida da nossa base de dados.
rsGlobalWeb.Open SqlJunk, dbGlobalWeb, 3
Pergunta
AlexCT
Tenho uma busca já pronta e funcionando onde quando a pessoa digitar um valor composto por exemplo:
olho azul
A busca é por duas palavras distintas, por olho separado do azul (mas no script ela procura sepadamente, ams depois junta a busca)
Mas gostaria de fazer algo para quando a pessoa digitar olho+azul, fosse procurado a palavra em conjunto olho azul.
Por isso não sei como fazer para reconhecer o "+", tratar a palavra composta.
Já pensei e para cada palavra que achar criar um array para ela (para não perder a palavra anterior), seria um caminho?
Pois seria uma boa alternativa, pois poderia ter um check na busca da frase exata e busca por palavra.
Seria muito complicado fazer assim?
Mas o meu grande Problema mesmo... pelo o que viu é criar uma variavel para cada palavra digitada
Posso fazer como?
Abaixo esta uma parte do programa de busca, somente a parte que separa as palavras
ALGUMA SUGESTÃO ?
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados