Jump to content


Photo

Como Fazer Busca E Ignorar Acentuação?


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

#1 Scream_Right

Scream_Right

    Turista

  • Usuários
  • 40 posts
  • Sexo:Não informado
  • Localidade:Campo Novo do Parecis
  • Interesses:Dreamweaver<br />Fireworks<br />Html<br />Asp, <br />Photoshop

Posted 18/08/2005, 11:53

Blz galera.

O meu problema é o seguinte tenho um banco de dados de lista telefonica e quando faço a busca no asp por um nome sem colocar o acento ele nao acha a pessoa, queria saber como fazer para ele ignorar essa acentuação.

Abaixo coloco o sistema de formulario e resultado que fiz:

busca.asp
<body style="overflow-y: no;overflow-x: hidden;">

<div align="left">
  <table width="100%"  border="0">
    <tr>
      <td background="../images/barra.GIF"><div align="center"><font face=verdana size=2><strong>CONSULTAS POR NOMES </strong></font></div></td>
    </tr>
  </table>
  <br>
  <table width="570" border="0" cellpadding="0" cellspacing="0">
    <!--DWLayoutTable-->
    <tr>
      <td width="557" height="24" valign="top"><form action="resultado.asp" method="post">
        <strong>        <input type = text name="buscando" size=37 style= "font-family : Verdana; font-size : 11px;">
        &nbsp;&nbsp;
          <input type="submit" name="Submit" value="Buscar por Nome">
        </strong>
      </form></td>
      <td width="13">&nbsp;</td>
    </tr>
  </table>
  <br>
  *
Informe o nome da pessoa ou empresa que procura. </div>
</body>

resultado.asp
<body bgcolor="#f2f2f2" style="overflow-y: no;overflow-x: hidden;">
<%
Busca = Trim(Request.form("buscando"))
%>


<%
set DB = createobject("adodb.connection")
constr = "Driver={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("cad.mdb")
DB.open constr

Set objRS = Server.CreateObject("ADODB.Recordset")
%>


<%
function TiraAspas(str)
str = replace(str,"'","""")
TiraAspas = str
End function
%>



<% 
Busca=TiraAspas(Busca)

strSql = "SELECT * FROM tabela WHERE nome LIKE '%"&Busca&"%'" 
objRS.Open strSQL,DB,1,1
%>
<table width="100%"  border="0">
  <tr>
    <td background="../images/barra.GIF"><div align="center"><font face=verdana size=2><b>RESULTADO DA BUSCA POR NOMES
</b></font></div></td>
  </tr>
</table>
  
  <p>&nbsp;</p>
  <table width="100%"  border="0">
  <!--DWLayoutTable-->
  <tr>
    <td width="252" height="14"><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Nome:</font></strong></td>
    <td width="268"><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Endere&ccedil;o:</font></strong></td>
    <td width="126" valign="top"><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Bairro:</font></strong></td>
    <td width="117" valign="top"><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Fone:</font></strong></td>
  </tr>

  <%
if (len(busca)<=2) then
Response.write("Digite uma palavra com o mínimo de 3 letras para fazer a busca.")

ElseIf (Busca = "") then
Response.write("Você precisa escrever uma palavra para fazer uma busca.")

ElseIf (objRS.EOF = true) then
response.write "Sua busca por <b>"&Busca&"</b> não retornou nenhum resultado."
Else
do While not objRS.EOF
%>


  
  
  <tr>
    <td height="21"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=objRS(TiraAspas("nome"))%></font></td>
    <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=objRS(TiraAspas("ende"))%></font></td>
    <td valign="top"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=objRS(TiraAspas("bairro"))%></font></td>
    <td valign="top"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=objRS(TiraAspas("fone"))%></font></td>
  </tr>    
  <%
objRS.MoveNext
Loop
End IF
%>
</table>
<p><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><br>
<a href="consultageral.asp">Ver Todos</a></font></strong></p>
<p><strong></strong></p>
</body>


Valeu, espero que alguem possa me dar uma luz, hehehe!!! :D

#2 Agente Linhares

Agente Linhares

    fuis...abraços!

  • Ex-Admins
  • 3138 posts
  • Sexo:Não informado
  • Localidade:Biritiba Mirim-SP

Posted 18/08/2005, 16:17

replace nele!

vcampo = Replace(request.Form("campo"), "'", "")
response.write vcampo

> Busca On-line - A Busca que faltava na Internet! - Cadastre-se!
---------------------------------------------------------------------------
> BRdesign.NET - Soluções em Websites e Sistemas E-Commerce.
---------------------------------------------------------------------------
> BR-ecommerce - Sua loja virtual na internet! - Apenas R$99,90 mensais (hospedagem inclusa)!

#3 Scream_Right

Scream_Right

    Turista

  • Usuários
  • 40 posts
  • Sexo:Não informado
  • Localidade:Campo Novo do Parecis
  • Interesses:Dreamweaver<br />Fireworks<br />Html<br />Asp, <br />Photoshop

Posted 18/08/2005, 19:02

blz!

Desculpe a minha baita ignorancia... ams aonde eu coloco isso? tentei colocar junto dos outros request´s da página de resultado mas nao funcionou...

Vou continuar tentando.

#4 Agente Linhares

Agente Linhares

    fuis...abraços!

  • Ex-Admins
  • 3138 posts
  • Sexo:Não informado
  • Localidade:Biritiba Mirim-SP

Posted 19/08/2005, 12:07

no seu code, altere assim essa parte:

Busca = Replace(request.Form("buscando"), "'", "")

> Busca On-line - A Busca que faltava na Internet! - Cadastre-se!
---------------------------------------------------------------------------
> BRdesign.NET - Soluções em Websites e Sistemas E-Commerce.
---------------------------------------------------------------------------
> BR-ecommerce - Sua loja virtual na internet! - Apenas R$99,90 mensais (hospedagem inclusa)!

#5 edmais

edmais

    Just do it!

  • Usuários
  • 797 posts
  • Sexo:Não informado
  • Localidade:BH - MG

Posted 19/08/2005, 14:08

replace nele!

vcampo = Replace(request.Form("campo"), "'", "")
response.write vcampo

Ele está querendo eliminar ou ignorar acentuação dos caracteres como por exemplo se a palavra for "João" ela procurar por "Joao".

Bom, não sei de algo tão prático assim. Eu faria uma função em VbScript, nessa função eu usuario REGEXP(Regular Expressions) pra eliminar esses acentos. É algo complexo, mas acho que dá certo.
Eduardo Batista

#6 Agente Linhares

Agente Linhares

    fuis...abraços!

  • Ex-Admins
  • 3138 posts
  • Sexo:Não informado
  • Localidade:Biritiba Mirim-SP

Posted 19/08/2005, 14:25

replace nele!

vcampo = Replace(request.Form("campo"), "'", "")
response.write vcampo

Ele está querendo eliminar ou ignorar acentuação dos caracteres como por exemplo se a palavra for "João" ela procurar por "Joao".

Bom, não sei de algo tão prático assim. Eu faria uma função em VbScript, nessa função eu usuario REGEXP(Regular Expressions) pra eliminar esses acentos. É algo complexo, mas acho que dá certo.

tendi o q ele quer..nunca fiz, mas talvez dê pra fazer c/ replace msmo..

so vc especificar todos os tps de acentos em todas as as vogais (q so sao em vogais msmo)

exs.:
Busca = Replace(request.Form("buscando"), "ã", "a")

Busca = Replace(request.Form("buscando"), "cão", "cao")


e por aí vai..
pode nao ser a melhor maneira, nunca fiz algo q precisasse, porem deve dar assim..

tenta la pra ver..
> Busca On-line - A Busca que faltava na Internet! - Cadastre-se!
---------------------------------------------------------------------------
> BRdesign.NET - Soluções em Websites e Sistemas E-Commerce.
---------------------------------------------------------------------------
> BR-ecommerce - Sua loja virtual na internet! - Apenas R$99,90 mensais (hospedagem inclusa)!

#7 Scream_Right

Scream_Right

    Turista

  • Usuários
  • 40 posts
  • Sexo:Não informado
  • Localidade:Campo Novo do Parecis
  • Interesses:Dreamweaver<br />Fireworks<br />Html<br />Asp, <br />Photoshop

Posted 24/08/2005, 19:38

Tentei utilizar o replace, mas nao deu certo... fiz de diversas maneiras determinei as vogais, mas nao tem jeito...

Alguma outra maneira que possa me ajudar nessa tarefa?


Valeu!

#8 getpaulo

getpaulo

    Normal

  • Usuários
  • 82 posts
  • Sexo:Não informado
  • Localidade:MG
  • Interesses:Apreender

Posted 27/08/2005, 04:36

Basta usar o função:

function TiraAcento(StrAcento)
 for i = 1 to len(StrAcento) 
  Letra = mid(StrAcento, i, 1)
  Select Case Letra
   Case "á","Á","à","À","ã","Ã","â","Â","â","ä","Ä"
   Letra = "A"
   Case "é","É","ê","Ê","Ë","ë","È","è"
   Letra = "E"
   Case "í","Í","ï","Ï","Ì","ì"
   Letra = "I"
   Case "ó","Ó","ô","Ô","õ","Õ","ö","Ö","ò","Ò"
   Letra = "O"
   Case "ú","Ú","Ù","ù","ú","û","ü","Ü","Û"
   Letra = "U"
   Case "ç","Ç"
   Letra = "C"
   Case "ñ"
   Letra = "N"
  End Select
  texto = texto & Letra
 next
 TiraAcento = texto
end function 

getpaulo

"Mas, a todos quantos o receberam, aos que crêem no seu nome, deu-lhes o poder de se tornarem filhos de Deus; aos quais não nasceram do sangue, nem da vontade da carne, nem da vontade do varão, mas de Deus. JOÃO 1:12,13"


#9 wozniak

wozniak

    Hands-On Founder

  • Usuários
  • 578 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro / RJ

Posted 29/08/2005, 18:53

Outra maneira:

<%

function TiraAspas(str)
str = replace(str,"'","''")
str = replace(str,""","""")
TiraAspas = str
End function

Busca=TiraAspas(Server.HtmlEncode(Busca))

%>

Abraços




1 user(s) are reading this topic

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

IPB Skin By Virteq