SELECT SEM ACENTUAÇÃO [RESOLVIDO]

BOA TARDE ,

TENHO UMA APLICAÇÃO QUE TEM O NOME DOS MUNÍCIPIOS SEM ACENTUAÇÃO, QUE PEGUEI DO CADASTRO DO IBGE.

MAS O MEU CLIENTE PEGA O MUNICIPIO DOS DADOS DO CEP DO SC E QUANDO VOU FAZER O SELECT PARA ACHAR O MUNICIPIO DO CADASTRO DO IBGE NÃO ACHO PORQUE TEM ACENTUAÇÃO UM DE ACENTUAÇÃO E OUTRO NÃO.

GOSTARIA DE SABER SE TEM ALGUM COMANDO NO SELECT QUE TIRA TODA ACENTUAÇÃO PARA ACHAR NA TABELA DO IBGE.

$varstr_sql = “Select nome_uf_municipio,codigo_ibge_uf_municipio
From tbl_uf_municipio
Where iduf = '” . {iduf} . “’ And nome_uf_municipio = '” . {nome_municipio_pessoas} . “’” ;

UM ABRAÇO

NIGRI

Nigri no SQL eu desconheço uma função que faça isso, a não ser que você faça manualmente, mas o que você pode fazer é pegar o retorno e usar esta função do PHP.

function removerAcento($str){
$from = ‘ÀÁÃÂÉÊÍÓÕÔÚÜÇàáãâéêíóõôúüç’;
$to = ‘AAAAEEIOOOUUCaaaaeeiooouuc’;
return strtr($str, $from, $to);
}

Basta criar um método php na aplicação e usar esta função.

Boa noite,

Apenas complementando, acredito que se o Sr. definir a COLLATION do seu banco de dados como ACCENT INSENTIVE, o mesmo ignorará acentos em strings passadas na cláusula where.

Ex: No meu banco tenho salvo: São Luís

Realizo a seguinte busca: SELECT * FROM Cidade WHERE Cidade = ‘Sao Luis’.

Retorno: 1 registro - São Luís

Acredito que o mesmo acontece para buscas em palavras não acentuadas, passando uma string acentuada.

Obs: Acredito que a melhor solução é a que foi postada pelo colega Robert.

att,
Bernhard Bernsmann

BOM DIA ,

ESTOU TENTANDO TIRAR A ACENTUAÇÃO PARA FAZER O SELECT E ESTÁ ACONTECENDO O SEGUINTE

NO CAMPO ESTÁ ASSIM QUE FOI DIGITADO PELO USUÁRIO SÃO PAULO

ENVIO PARA BIBLIOTECA

$varstr_nomemunicipio = removeracento({nome_municipio_pessoas});

<?php function removeracento($str){ $from = 'ÀÁÃÂÉÊÍÓÕÔÚÜÇàáãâéêíóõôúüç'; $to = 'AAAAEEIOOOUUCaaaaeeiooouuc'; return strtr($str, $from, $to); } ?>

E VOLTA ASSIM “SuEO PAULO”

PODERIA DIZER PORQUE ESTÁ VOLTANDO ERRADO ???

OBRIGADO

NIGRI

Boa tarde,

Saberia informar o que está retornando errado a função acima

obrigado

Nigri

Nigri, coloca um echo {nome_municipio_pessoas} e veja pra mim se na tela vai aparecer São Paulo, ou algum nome com erro de charset.

boa noite Roberto

O pior de tudo que SÂO PAULO e o que mostra no comando echo antes

e “SuEO PAULO” e o que volta na variável com o comando echo

por isso que pedi ajuda como não consigo ver como a função processou

Se tiver outra ideia agradeço

um abraço

Nigri

Boa noite,

o que está errado que no menu\aplicação\configuração\charset UNOCODE(UTF-8) IGUAL DEFINIDO NO BANCO DE DADOS MYSQL

DEPOIS COLOQUEI NO CHARSET DA APLICAÇÃO WESTERN(ISO-8859-1) RESOLVEU O PROBLEMA

$varstr_nomemunicipio = removeracento({nome_municipio_pessoas});

<?php function removeracento($str){ $from = 'ÀÁÃÂÉÊÍÓÕÔÚÜÇàáãâéêíóõôúüç'; $to = 'AAAAEEIOOOUUCaaaaeeiooouuc'; return strtr($str, $from, $to); } ?>

MUITO OBRIGADO PELA AJUDA

UM ABRAÇO

NIGRI

oO isso não era pra acontecer mas se resolveu, ótimo. xD

bom dia Roberto,

Eu também não entendi e até agora estou com dúvida se nas aplicações coloco unocode(utf-8) ou western(iso-8859-1)

todo o meu banco de dados mysql está utf-8

qual é o correto para que as acentuações fiquem correta dando na tela como banco ???

se alguém souber por favor…

um abraço

NIgri

Nigri eu faço tudo em latin1. Que é padrão tanto no SC quanto nos bancos MySQL.