Ir para conteúdo

POWERED BY:

Arquivado

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

maicon_m

Ordenar e pesquisar acentuação

Recommended Posts

Olá.

 

Pesquisei sobre o assunto e encontrei diversos tópicos aqui no fórum, mas infelizmente nenhum funcionou para mim.

 

Estou precisando ordenar por nome uma lista de categoria. O problema ocorre quando a palavra inicia com acentuação. Esta ocorrendo que depois de 'Automação Industrial', ele mostra 'Óticas' e somente então continuam com 'Balanças'. A ordenação alfabética esta correta exceto quando existe acentuação.

 

O mesmo problema quando procuro por 'Ótica', mesmo estando cadastrada na tabela, não encontra. Pesquisando 'otica' também não retorna.

 

Codificação banco de dados: latin1_swedish_ci

 

Estrutura da tabela:

 



 
 
CREATE TABLE IF NOT EXISTS `empresas_cat` (
`id_cat` int(5) NOT NULL auto_increment,
`nome` varchar(100) NOT NULL,
`id` int(5) NOT NULL,
PRIMARY KEY (`id_cat`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=127 ;
 

 

Na tabela o palavra aparece escrita: Óticas

 

Tentei usar sem sucesso:

 



 
$busca_avanc = mysql_query("SELECT * FROM empresas_cat ORDER BY nome COLLATE 'latin1_swedish_ci'");
 
$busca_avanc = mysql_query("SELECT * FROM empresas_cat ORDER BY nome ");
 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelo link Motta.

 

Tentei com a opção de 'CONVERT' no SQL mas não surtiu efeito. Usei utf8 e latin1.

 

Tentei também criar a função através da aba SQL no PHPMyAdmin, já que não sei de outra forma, e retornou erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Escolha usar charset utf8 e collate utf8_unicode_ci.

 

Exemplo:

 

CREATE TABLE IF NOT EXISTS `empresas_cat` ( 
  `id_cat` int(5) NOT NULL auto_increment, 
  `nome` varchar(100) NOT NULL, 
  `id` int(5) NOT NULL, 
  PRIMARY KEY (`id_cat`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_unicode_ci AUTO_INCREMENT=127 ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prog, obrigado,

 

Recriei a tabela usando o charset utf8, mas como os dados vieram da anterior, os acentos estão estilo Â" no caso do Ó de Óticas, assim como estão na outra tabela empresas onde preciso fazer busca por termo. Alguma idéia de como lidar com isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que o caminho mais rápido, se houver a necessidade de recriar todas as tabelas você pode exportar para um script, alterar a collation e o charset e executar o script.

 

Com o banco de dados online, você precisa fazer um script para alterar e converter, não há um "comando mágico". Melhor dizendo, eu desconheço a existência de um.

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.