Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

junaooaks

[Resolvido] mysql problema com acentos e buscas

Recommended Posts

pessoal qual a melhor forma de criar um banco de dados mysql para nao ter problema com acentuação e nao ter problema com busca

maiuscula ou minuscula

 

e como faço para converter o banco de dados que ja esta criado e contem dados?

 

estou criando em utf8_unicode_ci nao tenho problema com as busca(maiuscula ou minuscula) mas os acentos estao me dando uma dor de cabeça

Compartilhar este post


Link para o post
Compartilhar em outros sites

junaooaks, a criação do Banco de Dados depende mto da sua aplicação, eu geralmente utilizo "utf8_unicode_ci" em minhas tabelas e no meu PHP eu faço as modificações para Inserir e Selecionar dados.

Qual o problema com acentuação que você está tendo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

toda todos as palavras com acento fica embaralhada

 

como você faz a modificações para Inserir e Selecionar dados ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

junaooaks, seguinte o que eu geralmente faço é:

Ao Inserir:

- Formato as strings com a função do PHP utf8_decode('string');

- Antes de selecionar os dados eu seto a tipo de charset para a consulta utilizando a função mysql_query('stringSQL') passando como parâmetro SET NAMES 'utf8';

Veja os exemplos abaixo:

Exemplos:

<?php
   // Recebendo o dado do Formulário
   $nome = utf8_decode($_REQUEST['nome']);

   // Setando o Charset do Banco para UTF-8
   mysql_query("SET NAMES 'utf8';");

   // Selecionando os dados
   $query ="SELECT * FROM usuarios WHERE id = $id";
?>

Espero que lhe ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

junaooaks, seguinte o que eu geralmente faço é:

Ao Inserir:

- Formato as strings com a função do PHP utf8_decode('string');

- Antes de selecionar os dados eu seto a tipo de charset para a consulta utilizando a função mysql_query('stringSQL') passando como parâmetro SET NAMES 'utf8';

Veja os exemplos abaixo:

Exemplos:

<?php
   // Recebendo o dado do Formulário
   $nome = utf8_decode($_REQUEST['nome']);

   // Setando o Charset do Banco para UTF-8
   mysql_query("SET NAMES 'utf8';");

   // Selecionando os dados
   $query ="SELECT * FROM usuarios WHERE id = $id";
?>

Espero que lhe ajude.

 

 

Obrigada, Wess!

 

Não deu certo :(

 

A questão é que não é sempre, geralmente entra certo no banco. Estou tentando descobrir em que situação isso não dá certo, mas é difícil.

 

Se alguém tiver alguma outra ideia, ou esse script citado acima...

Compartilhar este post


Link para o post
Compartilhar em outros sites

renatagramos, qdo você fala:

A questão é que não é sempre, geralmente entra certo no banco.

você tem que ver o seguinte se você está mandando certo pelo PHP para o Banco e se o Banco manda certo para o PHP. Os testes que pode fazer é dá um INSERT pelo PHP e ver se o resultado está correto no Banco, daí você cria um outro script para selecionar este dado que você acabou de Inserir no Banco para ver se é o PHP q está com problema.

Tente utiliazar o que lhe falei qualquer coisa é só postar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

renatagramos, qdo você fala:

A questão é que não é sempre, geralmente entra certo no banco.

você tem que ver o seguinte se você está mandando certo pelo PHP para o Banco e se o Banco manda certo para o PHP. Os testes que pode fazer é dá um INSERT pelo PHP e ver se o resultado está correto no Banco, daí você cria um outro script para selecionar este dado que você acabou de Inserir no Banco para ver se é o PHP q está com problema.

Tente utiliazar o que lhe falei qualquer coisa é só postar.

 

Eu quis dizer que todas as palavras entram no banco em maiúscula, independente da forma que é digitada no formulário. Só que as vezes, no mesmo campo, a mesma palavra, entra com a acentuação em minúscula.

 

Ex.: campo Cidade: São Paulo - sempre digito da mesma forma, as vezes entra SÃO PAULO e outras vezes entra SãO PAULO.

 

Não entendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

[RESOLVIDO]

 

Desculpem a demorar em concluir, mas estou na correria...

 

A solução foi definir o charset "http-equiv="Content-Type" content="text/html; charset=utf-8" em cada página de conexão com o banco, não só no formulário.

 

 

Valeu pelas dicas!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.