Jump to content


Photo

Busca Por Palavras Na Frase


  • Faça o login para participar
6 replies to this topic

#1 alessancost

alessancost

    12 Horas

  • Usuários
  • 196 posts
  • Sexo:Não informado

Posted 15/03/2006, 23:00

Pessoal hoje estou muito chato mesmo :rolleyes: Acho que este é o meu terceiro tópico hoje. Pois bem, vamos lá, Eu tenho um código de busca... por exemplo se eu digitar Alessandro no campo o resultado é:

Alessandro Costa
Alessandro Andrade
Alessandro Natto

Até ai tubo bem! Mas se eu digitar alessandro costa.... o resultado será

Alessandro Costa

Mas estou querendo que fique assim

Alessandro Costa
Alessandro Andrade
Alessandro Natto
Thiago Costa
Marta da Costa Lima

O meu código ta assim:

   
  If strconsulta <> "" Then
  SQL = "SELECT palavra, registro "
  SQL = SQL + "FROM dicionario_latim "
  IF strbusca = 1 then
  SQL = SQL + "WHERE palavra LIKE '" & TiraAcento(Replace(strconsulta, "'", "''")) & "' "
  end if
  IF strbusca = 2 then
  SQL = SQL + "WHERE PALAVRA LIKE '%" & TiraAcento(Replace(strconsulta, "'", "''")) & "%' "
  end if   
  SQL = SQL + "ORDER BY palavra;"



#2 Generation

Generation

    Super Veterano

  • Usuários
  • 1546 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 16/03/2006, 00:18

use a função Split para separar o texto e acrescente depois a % para fazer a busca por todas as palavras.

[]'s
Favoritos : | OpenSuse | Opera | Firefox | NetBeans | GMail | Leia As Regras | Use a Busca | Como fazer Perguntas Inteligentes |
“Obstáculos são aquelas coisas medonhas que você vê quando tira seus olhos de seu objetivo” (Henry Ford)
“É impossível para um homem aprender aquilo que ele acha que já sabe.” (Epíteto)
“A única razão da existência do tempo é para que todas as coisas não aconteçam de uma vez.”(Albert Einstein)

#3 alessancost

alessancost

    12 Horas

  • Usuários
  • 196 posts
  • Sexo:Não informado

Posted 17/03/2006, 23:21

Generation, eu fiz assim:

  consulta2 = split(strconsulta," ")
  SQL = SQL + "WHERE PALAVRA LIKE '%" & TiraAcento(Replace(consulta2(1), "'", "''")) & "%' "
      n=0
      i=2
      Do While n = 0
      if NOT consulta2(i) = null or NOT consulta2(i) = "" then
  SQL = SQL + "'%" & TiraAcento(Replace(consulta2(1), "'", "''")) & "%' "
      i = i + 1
      else
      n = 1
      end if
      loop 


E ocorre esse erro:
Microsoft VBScript runtime error '800a0009' 

Subscript out of range: 'i' 

Como posso descobrir em quantas partes ele quebrou uma frase? Já que eu não sei quantas palavras o usuário poderá colocar numa pesquisa.
Obrigado e um bom final de semana (y)

#4 Humberto - S.O.S.

Humberto - S.O.S.

    ...

  • Banidos
  • PipPipPipPipPip
  • 463 posts
  • Sexo:Masculino
  • Localidade:São Bernardo do Campo - SP

Posted 18/03/2006, 01:51

http://forum.wmonlin...howtopic=143028



(y)
...

#5 alessancost

alessancost

    12 Horas

  • Usuários
  • 196 posts
  • Sexo:Não informado

Posted 18/03/2006, 19:27

Obrigado Humberto - S.O.S. (y)

#6 Humberto - S.O.S.

Humberto - S.O.S.

    ...

  • Banidos
  • PipPipPipPipPip
  • 463 posts
  • Sexo:Masculino
  • Localidade:São Bernardo do Campo - SP

Posted 19/03/2006, 00:01

De nada, resolvido?
...

#7 alessancost

alessancost

    12 Horas

  • Usuários
  • 196 posts
  • Sexo:Não informado

Posted 19/03/2006, 09:29

:P Resolvido Humberto - S.O.S. (y)

<%    Rs3.MoveNext
  Loop
  end if
   
  If strconsulta <> "" Then
  SQL = "SELECT palavra, registro "
  SQL = SQL + "FROM arquivo "
  IF strbusca = 1 then
  SQL = SQL + "WHERE palavra LIKE '" & TiraAcento(Replace(strconsulta, "'", "''")) & "' "
  end if
  IF strbusca = 2 then
      palavra2=split(strconsulta," ")
  SQL = SQL + "WHERE palavra LIKE '%" & TiraAcento(Replace(palavra2(0), "'", "''")) & "%' "
      for x = 1 to Ubound(palavra2)
  pesq=palavra2(x)
  SQL = SQL + "OR palavra LIKE '%" & TiraAcento(Replace(palavra2(x), "'", "''")) & "%' "
      next
  end if   
  SQL = SQL + "ORDER BY palavra;"

      Rs2.open sql
  intContador = Rs2.RecordCount %>


Agora estou tetanto resolver esse problema...
Quando digito casa no campo o resultado é

casa
casamento
casarão

no caso tenho que fazer com que o resultado seja casa... se consequir posto aqui o resultado




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq