Jump to content


Photo

Retorna Valor Da Busca Em Destaque


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

#1 AlexCT

AlexCT

    12 Horas

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

Posted 04/09/2003, 01:18

O que gostaria de saber como é feito isso, é o seguinte

quando se procura algo aqui no fórum.

Dentro do post, a palavra da busca fica em vermelho , em destaque.

por exemplo:
Busca: tutoriais

após a busca:

Tudo bem eu até ja havia chegado a essa conclusão, porém, não sei como fazer isso. Só encontro tutoriais e exemplos de fazer um Upload de arquivo, que não me interessa, Pois quero tutoriais, mais especificos.

#2 Rodrigo

Rodrigo

    oi!

  • Usuários
  • 995 posts
  • Sexo:Não informado
  • Interesses:Diretório de sites - http://www.acheinobrasil.com.br

Posted 04/09/2003, 08:16

dentro do loop pra exibir os codigos faça algo do tipo

request.querystring=("busca")

cor_normal="<font color=000000>" & busca & "</font>
cor_destaque="<font color=ff0000>" & busca & "</font>

'msg = resultado da busca

replace(msg, cor_destaque, cor_normal)

#3 AlexCT

AlexCT

    12 Horas

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

Posted 05/09/2003, 04:15

dentro do loop pra exibir os codigos faça algo do tipo

request.querystring=("busca")

cor_normal="<font color=000000>" & busca & "</font>
cor_destaque="<font color=ff0000>" & busca & "</font>

'msg = resultado da busca

replace(msg, cor_destaque, cor_normal)

O SCRIPT que passou deu certo, se eu buscar por apenas uma palavra e digitar ela exatamente

Pois a busca que estou fazendo busca a palavra no ACCESS sem acento e transformo em minuscula

e se por acaso no script que passou eu digitar Acertar ele fiferencia acetar, na hora de colorir a palavra busca.


Busca com varias palavras e tirando o acento.
Esta funcionando bem!

<% 
Dim busca  
busca = request.form("busca")

busca = LCase(busca)  'deixa em minuscula

'############# TIRA ACENTOS ######################
Acentos = Replace(busca,"a","[a,á,à,ã,â,ä]") 'tira acentos
Acentos = Replace(Acentos,"e","[e,é,è,ê,ë]")
Acentos = Replace(Acentos,"i","[i,í,ì,î,ï]")
Acentos = Replace(Acentos,"o","[o,ó,ò,õ,ô,ö]")
Acentos = Replace(Acentos,"u","[u,ú,ù,û,ü]")
Acentos = Replace(Acentos,"c","[c,ç]")
busca = Acentos
'############# FIM ACENTOS ######################

busca = trim(busca) 

if busca <> "" then 
                                                                                      
Dim conn
Dim RS
Dim SQLr 

Set Conn= server.createobject("adodb.connection")
conn.Open "PROVIDER=MSDASQL; DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("database/db_jogo.mdb")                                                
Set RS= Server.CreateObject("ADODB.Recordset") 
SQL = "SELECT * FROM jogos WHERE "     

dim espaco 
dim cada_palavra 
dim comp 
dim retirar 

        
do until instr(1,busca,chr(32)) = 0     
                                                                                      
espaco = instr(1,busca,chr(32))   

cada_palavra = left(busca,espaco-1) 

SQL = SQL & "(id LIKE '%"&cada_palavra&"%' or nomeativ LIKE '%"&cada_palavra&"%' or ramo LIKE '%"&cada_palavra&"%' or objetivo LIKE '%"&cada_palavra&"%' or descricao LIKE '%"&cada_palavra&"%' or material LIKE '%"&cada_palavra&"%' or tipo1 LIKE '%"&cada_palavra&"%' or tipo2 LIKE '%"&cada_palavra&"%' or estilo1 LIKE '%"&cada_palavra&"%' or estilo2 LIKE '%"&cada_palavra&"%' or estilo3 LIKE '%"&cada_palavra&"%')  and "

comp = len(busca) 

retirar = comp - espaco 
 
busca = right(busca,retirar) 

loop
  
SQL = SQL & "id LIKE '%"&busca&"%' or nomeativ LIKE '%"&busca&"%' or ramo LIKE '%"&busca&"%' or objetivo LIKE '%"&busca&"%' or descricao LIKE '%"&busca&"%' or material LIKE '%"&busca&"%' or tipo1 LIKE '%"&busca&"%' or tipo2 LIKE '%"&busca&"%' or estilo1 LIKE '%"&busca&"%' or estilo2 LIKE '%"&busca&"%' or estilo3 LIKE '%"&busca&"%' "

SQL = SQL & " ORDER BY nomeativ asc"  

RS.Open SQL, conn, 3

%> 

a parte de listar o conteudo da busca
<%
if RS.EOF Then
%> 

<%
do while NOT RS.EOF
%> 

<table


<% = RS("criacao")%>

</table>

<%
RS.MoveNext
loop 
end if

RS.Close
Set RS = Nothing
Conn.Close
Set Conn = Nothing
%>

<%else%>
Não foi digitado nenhum valor para a busca
<%end if%>


#4 yogodoshi

yogodoshi

    Turista

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

Posted 26/11/2007, 16:53

desculpa reviver o topico mas tava dando uma olhada nesse codigo que dá replace nos caracteres e talz...
e surgiu uma duvida, como fazer para quando o usuário procurar "praca" encontre tanto "praca" quanto "Praca", pois atualmente a minha busca está case sensitive.

#5 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 27/11/2007, 09:17

desculpa reviver o topico mas tava dando uma olhada nesse codigo que dá replace nos caracteres e talz...
e surgiu uma duvida, como fazer para quando o usuário procurar "praca" encontre tanto "praca" quanto "Praca", pois atualmente a minha busca está case sensitive.


O que você precisa é usar Lcase (ou Ucase, tanto faz..) na sua busca. Exemplo da função:

<%
nome = "PaLaVrA CoNsUlTa"

response.write "Sem nada: " & nome & "<BR>"
response.write "LCase: " & Lcase(nome) & "<BR>"
response.write "UCase: " & Ucase(nome) & "<BR>"
%>


Use a mesma lógica no banco de dados. Ao pegar os dados, coloca junto o Lcase e para a tabela do BD tb. Exemplo:

<%
texto = Lcase(request.form("texto"))

sql = "Select * from teste Where Lcase(palavra) = '"& texto &"'"
set rs = sua_conexao.execute(sql)

if rs.eof then
response.write "Nada encontrado"
else
response.write "Palavra encontrada"
end if

rs.close
set rs = nothing

%>

BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#6 yogodoshi

yogodoshi

    Turista

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

Posted 28/11/2007, 13:08

mas o Lcase serve apenas para converter o texto para minusculas certo?
entao se no banco tiver o texto em maiusculas, vai dizer que o texto procurado n foi encontrado... n eh isso?

keria 1 jeito para q o conteudo do banco n fosse case sensitive, q o texto procurado fosse encontrado no banco sendo em maiusculo ou minusculo.

#7 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 28/11/2007, 15:34

Já testou o que eu te mandei?

Testa...

Repara nesta parte do código:

texto = Lcase(request.form("texto"))

sql = "Select * from teste Where Lcase(palavra) = '"& texto &"'"

Nota que não é apenas o request.form que está com LCASE, mas o WHERE Lcase(palavra) também.

Ou seja, ele vai pegar o que foi digitado no form, transformar em minúsculas e na hora de fazer Where vai comparar com o valor gravado no DB já em minúsculas também.
BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#8 yogodoshi

yogodoshi

    Turista

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

Posted 28/11/2007, 16:34

ops, eu entendi de outra maneira: pra mim, o Lcase(palavra) tá simplesmente convertendo o nome do campo onde eu quero procurar para minuscula...

agora que percebi que esse é um comando SQL e nao ASP... na verdade eu nem sabia que existia esse comando em SQL =S

brigadao pela dica, vo tentar agora!

Abraços!

*update

funcionou perfeitamente, brigadão galera!

Edição feita por: yogodoshi, 28/11/2007, 17:26.


#9 JurisCode

JurisCode

    Mestre

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Paraná

Posted 28/11/2007, 16:42

de maneira ráida e prática, com o lcase
resultado = replace(RS("table_field"),request.form("text_busca"),"<b>" & request.form("text_busca") & "</b>")

response.write LCase(resultado)

nesse caso eu coloquei a palavra em destaque por negrito, mas vc pode colocar qqr outra tag de formatação no lugar do <b>, inclusive as de CSS.

#10 yogodoshi

yogodoshi

    Turista

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

Posted 28/11/2007, 22:34

opa, muito obrigado JurisCode, são essas sacadas que ainda me faltam por saber ASP apenas superficialmente...

Abraços! E de novo, obrigadão galera!




1 user(s) are reading this topic

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

IPB Skin By Virteq