velotrol 0 Denunciar post Postado Janeiro 18, 2012 Gostaria de fazer uma busca no MYSQL onde eu digito uma string sem acento e a consulta retorne com e sem acento. SELECT * FROM tabela WHERE cidade LIKE '% Sao Paulo %' No bd tem São Paulo e Sao Paulo quero que retorne os dois Como resolvo isso? Compartilhar este post Link para o post Compartilhar em outros sites
Hiago Drigo 5 Denunciar post Postado Janeiro 18, 2012 Gostaria de fazer uma busca no MYSQL onde eu digito uma string sem acento e a consulta retorne com e sem acento. SELECT * FROM tabela WHERE cidade LIKE '% Sao Paulo %' No bd tem São Paulo e Sao Paulo quero que retorne os dois Como resolvo isso? Não precisa tirar acentos, dessa forma ele pesquisa normalmente SELECT * FROM tabela WHERE cidade LIKE '%Sao Paulo%' só tenta tirar os espaços que tinha antes e depois de Sao Paulo Compartilhar este post Link para o post Compartilhar em outros sites
velotrol 0 Denunciar post Postado Janeiro 18, 2012 não deu!!! código original está assim: $re = mysql_query(" SELECT * FROM gl_ir WHERE ir_situacao='ativo' AND ir_cidade LIKE '%$rbusca_cidade%'"); Compartilhar este post Link para o post Compartilhar em outros sites
Hiago Drigo 5 Denunciar post Postado Janeiro 18, 2012 Coloque o sql numa variável, da um echo nela, veja o que aparece, copie o que aparece e entre no phpmyadmin e digite isso no sql. e da um or die (mysql_error()); depois da query. Se depois desses procedimentos padrões não resolver, poste o erro. Compartilhar este post Link para o post Compartilhar em outros sites
velotrol 0 Denunciar post Postado Janeiro 18, 2012 Cara, desculpe a ignorância, mais num entendi o que é pra fazer. Pode dar um exemplo...? Compartilhar este post Link para o post Compartilhar em outros sites
_Rafhael_ 2 Denunciar post Postado Janeiro 18, 2012 Basta um str_replace <?php $texto = "Á máríá gostá dó jóãó"; //Coloquei acento em todas as vogais ^^ e uma frase infantil ¬¬ $newTxt = str_replace(array('á','í','ó','ã','Á'),array('a','i','o','a','a'),$texto); echo $newTxt; ?> Compartilhar este post Link para o post Compartilhar em outros sites
velotrol 0 Denunciar post Postado Janeiro 18, 2012 meu problema é que no banco esta com acento.... eu quero digitar sem acento e ver o que esta no banco com acento. Quando eu digito "criciúma" retorna "Criciúma". Quando eu digito "criciuma"(sem acento) num retorna nada. No banco pelo phpmyadmin esta assim Criciúma não sei se isso interfere já que quando retorna aparece Criciúma. Compartilhar este post Link para o post Compartilhar em outros sites
williamhrs 0 Denunciar post Postado Janeiro 19, 2012 desta forma você não vai conseguir não.... Compartilhar este post Link para o post Compartilhar em outros sites
micox 2 Denunciar post Postado Janeiro 19, 2012 Acho que se você usar o collation utf8_general_ci você irá conseguir isso de forma transparente e fácil. VEja: http://dev.mysql.com/doc/refman/5.0/en/charset-collation-implementations.html Collations for Unicode multi-byte character sets Some of these collations are based on the Unicode Collation Algorithm (UCA), others are not. Non-UCA collations have a one-to-one mapping from character code to weight. In MySQL, such collations are case insensitive and accent insensitive. utf8_general_ci is an example: 'a', 'A', 'À', and 'á' each have different character codes but all have a weight of 0x0041 and compare as equal. mysql> SET NAMES 'utf8' COLLATE 'utf8_general_ci'; Query OK, 0 rows affected (0.00 sec) mysql> SELECT 'a' = 'A', 'a' = 'À', 'a' = 'á'; +-----------+-----------+-----------+ | 'a' = 'A' | 'a' = 'À' | 'a' = 'á' | +-----------+-----------+-----------+ | 1 | 1 | 1 | +-----------+-----------+-----------+ 1 row in set (0.06 sec) Pessoas com problemas inversos ao seu: http://stackoverflow.com/questions/2044268/looking-for-case-insensitive-mysql-collation-where-a-a http://stackoverflow.com/questions/500826/how-to-conduct-an-accent-sensitive-search-in-mysql Compartilhar este post Link para o post Compartilhar em outros sites
Felipe Jaconis 0 Denunciar post Postado Janeiro 19, 2012 Man pelo que eu conheço de mysql você não vai conseguir fazer isso por SELECT, é mais facíl você fazer um tratamento de string para ele armazenar no banco de dados somente da maneira que você quer por exemplo, usa um replace que o nosso amigo citou acima e se ele digitar maiscula ou minuscula não vai fazer diferença no banco de dados vai sempre estar São Paulo, dessa maneira sempre vai estar no banco o "S" maisculo e o "P" e o "ã" então por exemplo ficaria assim. $texto = "sao paulo"; //digite tudo minusculo e sem acentuação $newTxt = str_replace(array('s','p','ã'),array('S','P','ã'),$texto); //aqui ele vai substituir "s" por "S" e assim por diante A aproveitei o exemplo do nosso amigo _Rafhael_ Espero ter ajudado. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Janeiro 19, 2012 #10... é errôneo afirmar isso.. o correto recomendado está no post #9.. utf8_general_ci suporta diacritic em suma, há suporte tanto para "case insensitive", o qual é especificado no próprio nome "_ci" e "accent insensitive" que também pode ser representado por "_ai" Compartilhar este post Link para o post Compartilhar em outros sites
velotrol 0 Denunciar post Postado Janeiro 20, 2012 Galera quero agradecer a força, mas resolvi o problema. Já que eu não estava dando certo fiz dessa forma aqui: //header('Content-Type: text/html; charset=utf-8'); //essa parte não foi necessária. //conexão bd mysql_connect($host, $user, $senha); mysql_select_db($bd); //acrescentei essa parte após a conexão com bd como está abaixo: Agora quando cadastro aparece no banco tudo com acento certinho sem precisar fazer mais nada no código. mysql_query(“SET NAMES ‘utf8′”); mysql_query(“SET character_set_connection=utf8″); mysql_query(“SET character_set_client=utf8″); mysql_query(“SET character_set_results=utf8″); //Único problema é que: o que já estava cadastrado agora retornam com os símbolos igual como esta no banco, mas como o site ainda num está no ar resolve o problema. //.......... //Não esquecendo de ver se o meta tag está assim: <meta http-equiv="content-type" content="text/html;charset=utf-8" /> Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Janeiro 21, 2012 mysql_query(“SET NAMES ‘utf8′”); mysql_query(“SET character_set_connection=utf8″); mysql_query(“SET character_set_client=utf8″); mysql_query(“SET character_set_results=utf8″); isso resolve, mas ainda assim o seu banco não está configurado com utf8 "ci ai". recomendo que corrija o collation e charset no banco e tabelas. Assim não precisará mais ter que usar essas querys para cada conexão.. Compartilhar este post Link para o post Compartilhar em outros sites