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

Busca Com "acento" E Sem "acento"


Decio

Pergunta

Estou tentando fazer uma pesquisa por palavras (usando Like ), e gostaria que a consulta retornasse também as palavras com acento, tipo assim: O usuário faz uma busca pela palavra "João" e a consulta retornaria "Joao ou João".

Para palavras digitadas com acento, é fácil, eu poderia usar o replace para substituir os caracteres com acento e procurar uma ou outra , mas eu não

consegui pensar em como fazer se o usuário digitar sem o acento e eu procurar pela mesma palavras com acento.

Alguém tem alguma idéia de como fazer?

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Pois é urso.louco , pode até fechar o tópico, mas surgiu um pequeno problema...

Se fizer a pesquisa com uma palavra sem acento , a consulta retorna as palavras com e sem acento. mas se fizer a mesma pesquisa com mesma palavra só que com acento, retorna somente as palavras com acento.

Vou ter que alterar o código para procurar as palavras digitadas com acento também. Mas valeu a dica , só estou relatando para quem for usar o código não achar que funciona 100%

Link para o comentário
Compartilhar em outros sites

  • 0

manow, aí você vai ter que fazer que nem eu fiz, dei uma arrumada e foi veja o script:

function palavrasem(Str)

palavrasem = Replace(Str,"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(Str)

palavracom = Replace(Str,"ã","[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

dim conecta,SQL,tabela,cor

Set conecta = Server.CreateObject("ADODB.Connection")

conecta.Open "usuarios"

nome = Palavrasem(Request.Form("nome"))

nome2 = Palavracom(Request.Form("nome"))

SQL = "SELECT * FROM tb_contas WHERE NOME LIKE '" & nome & "%' OR nome LIKE '" & nome2 & "%' ORDER BY nome"

Set Reg = conecta.execute(SQL)

Pronto, agora é so correr para o abraco...hehehe!

Link para o comentário
Compartilhar em outros sites

  • 0

Caro Rockbilly, eu acredito que vai ter um pequeno problema na busca com acento. Por exemplo se eu digitar a palavra "BATALHÃO" e usar o "Replace(palavracom,"Ã","[A]")" , a palavra vai ficar assim: "BÃTÃLHÃO", e não vai ser encontrada.A dica do nosso amigo urso.louco foi 10, e resolveu meu problema.eu peço para o usuario digitar sem acento, mas sabe como é o usúario não é?você pede uma coisa, ele faz outra e diz que não fez, por isto vou trabalhar melhor em cima deste código. estou dando uma olhada nas regras de acentuação para ver se eu chego a algum acordo.

Link para o comentário
Compartilhar em outros sites

  • 0

Caro Rockbilly, eu não disse que você não me ajudou, eu apenas comentei o código.Existe situações da consulta que vai funcionar e outras que não vão funcionar.Não vou dar exemplos para não esticar o tópico.Obrigado pela atenção.

Moderador, por favor, pode fechar o tópico.

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...