Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Acentuação em Busca


Vagner Nunes

Pergunta

Prezados,

Boa tarde.

Preciso da ajuda dos senhores.

A situação é a seguinte, tenho uma página onde é feito uma busca de municípios, porém quando o visitante digita um determinado Municipio que contém acento, o sistema não retorna resultados.

Ex.: No banco de dados no campo locais, está cadastrado Vitória, daí se o visitante digitar Vitoria (sem acento) o sistema não retorna resultados, porém se eu cadastrar o municipio sem acento, ele busca normalmente.

Tem como configurar a busca para retornar resultados independentemente se estiver ou não com acentuação?

Obrigado.

Sds,

Vagner Nunes

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Tenho algumas dúvidas:

Onde posso inserir esta função em meu código?

Essa função é inserida na página que contém o formulário ou na página que contém os resultados?

busca=split(request("palavra"),chr(32))
dim onde
for x = 0 to Ubound(busca)
  if x > 0 then
     onde=onde + " and "
  end if
  pesq=busca(x) 
  pesq = replace(pesq,"a","[a,á,à,ã,â,ä,A]")
  pesq = replace(pesq,"e","[e,é,è,ê,ë,E]")
  pesq = replace(pesq,"i","[i,í,ì,î,ï,I]")
  pesq = replace(pesq,"o","[o,ó,ò,õ,ô,ö,O]")
  pesq = replace(pesq,"u","[u,ú,ù,û,ü,U]")
  pesq = replace(pesq,"c","[c,ç]")
  onde=onde+"texto like '%" & pesq & "%'"
next

sql = "select * from texto where " & onde

Sds,

Vagner Nunes

Link para o comentário
Compartilhar em outros sites

  • 0

também tem essa função...

function palavrasem(pesq)

palavrasem = Replace(pesq,"a","[a, á , ã]")
palavrasem = Replace(palavrasem,"A","[A, Á, Ã]")
palavrasem = Replace(palavrasem,"e","[e, é , è , ê]")
palavrasem = Replace(palavrasem,"E","[E , É , Ê]")
palavrasem = Replace(palavrasem,"i","[i , í , ì]")
palavrasem = Replace(palavrasem,"I","[I , Í]")
palavrasem = Replace(palavrasem,"o","[o , ó , ò , ô , õ]")
palavrasem = Replace(palavrasem,"O","[O , Ó , Ô , Õ]")
palavrasem = Replace(palavrasem,"u","[u , ú , ù]")
palavrasem = Replace(palavrasem,"U","[U , Ú]")
palavrasem = Replace(palavrasem,"c","[c , ç]")
palavrasem = Replace(palavrasem,"C","[C , Ç]")
palavrasem = palavrasem
end function

function palavracom(pesq)
palavracom = Replace(pesq,"ã","[a]")
palavracom = Replace(palavracom,"Ã","[A]")
palavracom = Replace(palavracom,"á","[a]")
palavracom = Replace(palavracom,"Á","[A]")
palavracom = Replace(palavracom,"ê","[e]")
palavracom = Replace(palavracom,"Ê","[E]")
palavracom = Replace(palavracom,"í","[i]")
palavracom = Replace(palavracom,"Í","[I]")
palavracom = Replace(palavracom,"õ","[o]")
palavracom = Replace(palavracom,"Õ","[O]")
palavracom = Replace(palavracom,"ú","[u]")
palavracom = Replace(palavracom,"Ú","[U]")
palavracom = Replace(palavracom,"ç","[c]")
palavracom = Replace(palavracom,"Ç","[C]")
palavracom = palavracom
end function

Link para o comentário
Compartilhar em outros sites

  • 0

Digamos que você queira digitar uma palavra em um input pra depois colocar esse input em uma query...

seu input tem o nome de: txtPesquisa

você faria assim:

pesq = request.form ("txtPesquisa")

function palavrasem(pesq)

palavrasem = Replace(pesq,"a","[a, á , ã]")
palavrasem = Replace(palavrasem,"A","[A, Á, Ã]")
palavrasem = Replace(palavrasem,"e","[e, é , è , ê]")
palavrasem = Replace(palavrasem,"E","[E , É , Ê]")
palavrasem = Replace(palavrasem,"i","[i , í , ì]")
palavrasem = Replace(palavrasem,"I","[I , Í]")
palavrasem = Replace(palavrasem,"o","[o , ó , ò , ô , õ]")
palavrasem = Replace(palavrasem,"O","[O , Ó , Ô , Õ]")
palavrasem = Replace(palavrasem,"u","[u , ú , ù]")
palavrasem = Replace(palavrasem,"U","[U , Ú]")
palavrasem = Replace(palavrasem,"c","[c , ç]")
palavrasem = Replace(palavrasem,"C","[C , Ç]")
palavrasem = palavrasem
end function

function palavracom(pesq)
palavracom = Replace(pesq,"ã","[a]")
palavracom = Replace(palavracom,"Ã","[A]")
palavracom = Replace(palavracom,"á","[a]")
palavracom = Replace(palavracom,"Á","[A]")
palavracom = Replace(palavracom,"ê","[e]")
palavracom = Replace(palavracom,"Ê","[E]")
palavracom = Replace(palavracom,"í","[i]")
palavracom = Replace(palavracom,"Í","[I]")
palavracom = Replace(palavracom,"õ","[o]")
palavracom = Replace(palavracom,"Õ","[O]")
palavracom = Replace(palavracom,"ú","[u]")
palavracom = Replace(palavracom,"Ú","[U]")
palavracom = Replace(palavracom,"ç","[c]")
palavracom = Replace(palavracom,"Ç","[C]")
palavracom = palavracom
end function
pronto... na sua query você faria assim:
sql = "select * from sua_tabela where seu_campo = '"&palavrasem&"' AND seu_campo = '"&palavracom&"' "

[]'S

Link para o comentário
Compartilhar em outros sites

  • 0

Prezado,

Tentei, mas agora não retorna nenhum resultado.

Segue linhas que inseri:

<%
Dim Didaticos
Dim Didaticos_cmd
Dim Didaticos_numRows

Set Didaticos_cmd = Server.CreateObject ("ADODB.Command")
Didaticos_cmd.ActiveConnection = MM_conexao_STRING
Didaticos_cmd.CommandText = "SELECT * FROM escolas WHERE escola = '"&palavrasem&"' AND escola = '"&palavracom&"'" 
Didaticos_cmd.Prepared = true

Set Didaticos = Didaticos_cmd.Execute
Didaticos_numRows = 0
%>
E as funções:
<%
pesq = request.form ("txtPesquisa")

function palavrasem(pesq)

palavrasem = Replace(pesq,"a","[a, á , ã]")
palavrasem = Replace(palavrasem,"A","[A, Á, Ã]")
palavrasem = Replace(palavrasem,"e","[e, é , è , ê]")
palavrasem = Replace(palavrasem,"E","[E , É , Ê]")
palavrasem = Replace(palavrasem,"i","[i , í , ì]")
palavrasem = Replace(palavrasem,"I","[I , Í]")
palavrasem = Replace(palavrasem,"o","[o , ó , ò , ô , õ]")
palavrasem = Replace(palavrasem,"O","[O , Ó , Ô , Õ]")
palavrasem = Replace(palavrasem,"u","[u , ú , ù]")
palavrasem = Replace(palavrasem,"U","[U , Ú]")
palavrasem = Replace(palavrasem,"c","[c , ç]")
palavrasem = Replace(palavrasem,"C","[C , Ç]")
palavrasem = palavrasem
end function

function palavracom(pesq)
palavracom = Replace(pesq,"ã","[a]")
palavracom = Replace(palavracom,"Ã","[A]")
palavracom = Replace(palavracom,"á","[a]")
palavracom = Replace(palavracom,"Á","[A]")
palavracom = Replace(palavracom,"ê","[e]")
palavracom = Replace(palavracom,"Ê","[E]")
palavracom = Replace(palavracom,"í","[i]")
palavracom = Replace(palavracom,"Í","[I]")
palavracom = Replace(palavracom,"õ","[o]")
palavracom = Replace(palavracom,"Õ","[O]")
palavracom = Replace(palavracom,"ú","[u]")
palavracom = Replace(palavracom,"Ú","[U]")
palavracom = Replace(palavracom,"ç","[c]")
palavracom = Replace(palavracom,"Ç","[C]")
palavracom = palavracom
end function
%>

Depois tentei denovo e apareceu o seguinte erro:

Informações técnicas (para a equipe de suporte)

Tipo de erro:

Erro de tempo de execução do Microsoft VBScript (0x800A01C2)

Número de argumentos incorreto ou atribuição de propriedade inválida: 'palavrasem'

/logos/livrosdidaticos_escolas.asp, line 10

Tipo de navegador:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2)

Página:

GET /logos/livrosdidaticos_escolas.asp

Hora:

quinta-feira, 29 de janeiro de 2009, 20:19:12

O que pode estar acontecendo?

Obrigado

Sds,

Vagner Nunes

Link para o comentário
Compartilhar em outros sites

  • 0

Tua request e funcao

<%
txtPesquisa = request.form ("txtPesquisa")

function palavrasem(txtPesquisa)

palavrasem = Replace(txtPesquisa,"a","[a, á , ã]")
palavrasem = Replace(palavrasem,"A","[A, Á, Ã]")
palavrasem = Replace(palavrasem,"e","[e, é , è , ê]")
palavrasem = Replace(palavrasem,"E","[E , É , Ê]")
palavrasem = Replace(palavrasem,"i","[i , í , ì]")
palavrasem = Replace(palavrasem,"I","[I , Í]")
palavrasem = Replace(palavrasem,"o","[o , ó , ò , ô , õ]")
palavrasem = Replace(palavrasem,"O","[O , Ó , Ô , Õ]")
palavrasem = Replace(palavrasem,"u","[u , ú , ù]")
palavrasem = Replace(palavrasem,"U","[U , Ú]")
palavrasem = Replace(palavrasem,"c","[c , ç]")
palavrasem = Replace(palavrasem,"C","[C , Ç]")
palavrasem = palavrasem
end function

function palavracom(txtPesquisa)
palavracom = Replace(txtPesquisa,"ã","[a]")
palavracom = Replace(palavracom,"Ã","[A]")
palavracom = Replace(palavracom,"á","[a]")
palavracom = Replace(palavracom,"Á","[A]")
palavracom = Replace(palavracom,"ê","[e]")
palavracom = Replace(palavracom,"Ê","[E]")
palavracom = Replace(palavracom,"í","[i]")
palavracom = Replace(palavracom,"Í","[I]")
palavracom = Replace(palavracom,"õ","[o]")
palavracom = Replace(palavracom,"Õ","[O]")
palavracom = Replace(palavracom,"ú","[u]")
palavracom = Replace(palavracom,"Ú","[U]")
palavracom = Replace(palavracom,"ç","[c]")
palavracom = Replace(palavracom,"Ç","[C]")
palavracom = palavracom
end function
%>
SQL
sql = "SELECT * FROM escolas WHERE escola LIKE '%" & palavrasem(txtPesquisa) & "%' OR escola LIKE '%" & palavracom(txtPesquisa) & "%'"

Testa ai e poste o resultado...

Editado por Loko da Web
Link para o comentário
Compartilhar em outros sites

  • 0

Prezados,

Agora da busca vem, porém está vindo todas as escolas.

Segue parte do código da página abaixo:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="Connections/conexao.asp" -->
<%
Dim Didaticos
Dim Didaticos_cmd
Dim Didaticos_numRows

Set Didaticos_cmd = Server.CreateObject ("ADODB.Command")
Didaticos_cmd.ActiveConnection = MM_conexao_STRING
Didaticos_cmd.CommandText = "SELECT * FROM escolas WHERE escola LIKE '%" & palavrasem(txtPesquisa) & "%' OR escola LIKE '%" & palavracom(txtPesquisa) & "%'" 
Didaticos_cmd.Prepared = true

Set Didaticos = Didaticos_cmd.Execute
Didaticos_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = -1
Repeat1__index = 0
Didaticos_numRows = Didaticos_numRows + Repeat1__numRows
%>
<%
Dim MM_paramName 
%>
<%
' *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters

Dim MM_keepNone
Dim MM_keepURL
Dim MM_keepForm
Dim MM_keepBoth

Dim MM_removeList
Dim MM_item
Dim MM_nextItem

' create the list of parameters which should not be maintained
MM_removeList = "&index="
If (MM_paramName <> "") Then
  MM_removeList = MM_removeList & "&" & MM_paramName & "="
End If

MM_keepURL=""
MM_keepForm=""
MM_keepBoth=""
MM_keepNone=""

' add the URL parameters to the MM_keepURL string
For Each MM_item In Request.QueryString
  MM_nextItem = "&" & MM_item & "="
  If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
    MM_keepURL = MM_keepURL & MM_nextItem & Server.URLencode(Request.QueryString(MM_item))
  End If
Next

' add the Form variables to the MM_keepForm string
For Each MM_item In Request.Form
  MM_nextItem = "&" & MM_item & "="
  If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
    MM_keepForm = MM_keepForm & MM_nextItem & Server.URLencode(Request.Form(MM_item))
  End If
Next

' create the Form + URL string and remove the intial '&' from each of the strings
MM_keepBoth = MM_keepURL & MM_keepForm
If (MM_keepBoth <> "") Then 
  MM_keepBoth = Right(MM_keepBoth, Len(MM_keepBoth) - 1)
End If
If (MM_keepURL <> "")  Then
  MM_keepURL  = Right(MM_keepURL, Len(MM_keepURL) - 1)
End If
If (MM_keepForm <> "") Then
  MM_keepForm = Right(MM_keepForm, Len(MM_keepForm) - 1)
End If

' a utility function used for adding additional parameters to these strings
Function MM_joinChar(firstItem)
  If (firstItem <> "") Then
    MM_joinChar = "&"
  Else
    MM_joinChar = ""
  End If
End Function
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>&lt;&lt; Logos Livraria :: seja bem-vindo!&gt;&gt;</title>
<style type="text/css">
<!--
body,td,th {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px;
    color: #000000;
}
body {
    background-image: url(imagens/fundo.jpg);
    background-repeat: repeat-x;
    background-color: #F7F7F7;
}
a {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px;
    color: #000000;
}
a:link {
    text-decoration: none;
}
a:visited {
    text-decoration: none;
    color: #666666;
}
a:hover {
    text-decoration: none;
    color: #999999;
}
a:active {
    text-decoration: none;
    color: #333333;
}
#apDiv2 {
    position:absolute;
    width:301px;
    height:83px;
    z-index:1;
    left: 473px;
    top: 30px;
}
.style3 {    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 8px;
}
.style4 {    color: #FFFFFF;
    font-weight: bold;
}
.style5 {color: #FFFFFF}
.style6 {font-weight: bold}
.style8 {color: #000000; font-weight: bold; }
-->
</style>
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
<script type="text/javascript">
<!--
function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}
//-->
</script>
<%
txtPesquisa = request.querystring  ("txtPesquisa")

function palavrasem(txtPesquisa)

palavrasem = Replace(txtPesquisa,"a","[a, á , ã]")
palavrasem = Replace(palavrasem,"A","[A, Á, Ã]")
palavrasem = Replace(palavrasem,"e","[e, é , è , ê]")
palavrasem = Replace(palavrasem,"E","[E , É , Ê]")
palavrasem = Replace(palavrasem,"i","[i , í , ì]")
palavrasem = Replace(palavrasem,"I","[I , Í]")
palavrasem = Replace(palavrasem,"o","[o , ó , ò , ô , õ]")
palavrasem = Replace(palavrasem,"O","[O , Ó , Ô , Õ]")
palavrasem = Replace(palavrasem,"u","[u , ú , ù]")
palavrasem = Replace(palavrasem,"U","[U , Ú]")
palavrasem = Replace(palavrasem,"c","[c , ç]")
palavrasem = Replace(palavrasem,"C","[C , Ç]")
palavrasem = palavrasem
end function

function palavracom(txtPesquisa)
palavracom = Replace(txtPesquisa,"ã","[a]")
palavracom = Replace(palavracom,"Ã","[A]")
palavracom = Replace(palavracom,"á","[a]")
palavracom = Replace(palavracom,"Á","[A]")
palavracom = Replace(palavracom,"ê","[e]")
palavracom = Replace(palavracom,"Ê","[E]")
palavracom = Replace(palavracom,"í","[i]")
palavracom = Replace(palavracom,"Í","[I]")
palavracom = Replace(palavracom,"õ","[o]")
palavracom = Replace(palavracom,"Õ","[O]")
palavracom = Replace(palavracom,"ú","[u]")
palavracom = Replace(palavracom,"Ú","[U]")
palavracom = Replace(palavracom,"ç","[c]")
palavracom = Replace(palavracom,"Ç","[C]")
palavracom = palavracom
end function
%>

</head>

                <% While ((Repeat1__numRows <> 0) AND (NOT Didaticos.EOF)) %>
                  <tr>
                    <td bgcolor="#F5F5F5"><a href="livrosdidaticos_detalhe.asp?<%= Server.HTMLEncode(MM_keepNone) & MM_joinChar(MM_keepNone) & "ID=" & Didaticos.Fields.Item("ID").Value %>"><%=(Didaticos.Fields.Item("escola").Value)%></a></td>
                    <td bgcolor="#F5F5F5"><%=(Didaticos.Fields.Item("municipio").Value)%></td>
                  </tr>
                  <% 
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  Didaticos.MoveNext()
Wend
%>
<%
Didaticos.Close()
Set Didaticos = Nothing
%>

A algo de errado?

Sds,

Vagner Nunes

Link para o comentário
Compartilhar em outros sites

  • 0

aproveitando este tópico estou com um mesmo problema só que na hora de cadastrar por exemplo se eu cadastrar CLAUDIO JOSE ELE NÃO PODE CADASTRAR CLAUDIO JOSÉ ESTOU FAZENDO UM POUCO DIFERENTE ESSA ROTINA SERA QUE você PODE ME AJUDAR.

function palavrasem(pesq)

palavrasem = Replace(pesq,"a","[a, á , ã]")

palavrasem = Replace(palavrasem,"A","[A, Á, Ã]")

palavrasem = Replace(palavrasem,"e","[e, é , è , ê]")

palavrasem = Replace(palavrasem,"E","[E , É , Ê]")

palavrasem = Replace(palavrasem,"i","[i , í , ì]")

palavrasem = Replace(palavrasem,"I","[i , Í]")

palavrasem = Replace(palavrasem,"o","[o , ó , ò , ô , õ]")

palavrasem = Replace(palavrasem,"O","[O , Ó , Ô , Õ]")

palavrasem = Replace(palavrasem,"u","[u , ú , ù]")

palavrasem = Replace(palavrasem,"U","[u , Ú]")

palavrasem = Replace(palavrasem,"c","[c , ç]")

palavrasem = Replace(palavrasem,"C","[C , Ç]")

palavrasem = palavrasem

end function

function palavracom(Pesq)

palavracom = Replace(pesq,"ã","[a]")

palavracom = Replace(palavracom,"Ã","[A]")

palavracom = Replace(palavracom,"á","[a]")

palavracom = Replace(palavracom,"Á","[A]")

palavracom = Replace(palavracom,"ê","[e]")

palavracom = Replace(palavracom,"Ê","[E]")

palavracom = Replace(palavracom,"í","")

palavracom = Replace(palavracom,"Í","")

palavracom = Replace(palavracom,"õ","[o]")

palavracom = Replace(palavracom,"Õ","[O]")

palavracom = Replace(palavracom,"ú","")

palavracom = Replace(palavracom,"Ú","")

palavracom = Replace(palavracom,"ç","[c]")

palavracom = Replace(palavracom,"Ç","[C]")

palavracom = palavracom

end function

este é onde eu mando a função

sNome=Request("sNome")
sRe=Request("sRe")    
sUsuario=Request("sUsuario")
sSenha=Request("sSenha")
codNivel=Request("sNivel")
atc=Request("atc")
if atc="new" then
    strSql = "Select * from tabTecnicoAlmox where NomeTecnicoAlmox lilke '%" & palavrasem(sNome) & "%' "
    strSql = strSql & "or NomeTecnicoAlmox like '%" & palavracom(sNome) & "%' "
    strSql = strSql & "and Usuario = '" & sUsuario & "'"
    'response.Write(strsql)
    'Response.End()

Link para o comentário
Compartilhar em outros sites

  • 0

Quero resolver a questão da acentuação, porém aquela função estava = e esta está com o LIKE.

"SELECT * FROM escolas WHERE escola LIKE '%" & palavrasem(txtPesquisa) & "%' OR escola LIKE '%" & palavracom(txtPesquisa) & "%'"

Acho que me atrapalhei, com os exmplo das funções.

Esse negócio de acentuação está acabando comigo, não tem nenhuma função, que posso inserir junto do formulário, se quando o cara digitação com acentuação, o formulário automaticamente retirar essa acentuação.

Ou até mesmo um javascript com função de acentuação?

Sds,

Vagner Nunes

Link para o comentário
Compartilhar em outros sites

  • 0

O problema na real é que você ainda não desistiu do DW para fazer seus scripts... uma coisa é o utilizar como editor, para autocompletar tags e colorir o seu código... outra é utilizar ele para que ele crie os codigos pra você.. acontecem esses problemas aí!

Dfícil saber o que está ocorrendo... nada a ver com o fato de ser local ou remoto!

[]'s

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...