Ir para conteúdo

Arquivado

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

jganjos

Busca php sem acentuação não encontra o valor correto

Recommended Posts

Bom dia pessoal.

 

Tenho um banco de dados com uma coluna CDS e CAT onde CDS é o cadastro do cliente e CAT a categoria.

ID   |   CDS | CAT

01  |   01    | Excel Intermediário

02  |   01    | Excel Básico

03  |   01    | Word Intermediário

04  |   01    | Word Básico

 

Estou trabalhando com url amigáveis e preciso retornar a categoria.

No entanto, quando a url está meusite.com.br/excel-basico, o PHP retorna Excel Intermediário e não o Excel Básico.

 

O script de busca é o seguinte:

 

// BUSCA NAS CATEGORIAS

$sub pega a categoria na url no caso (excel-basico)
$src = "select * from post_categoria where cds like '$cds' and cat like _utf8 '%$sub%' COLLATE utf8_unicode_ci";
$sql = mysql_query($src);
$num = mysql_num_rows($sql);
$dat = mysql_fetch_array($sql);

 

Tentei realizando a busca entre chaves '%{$sub}%' e obtive a mesma falha na busca.

A busca está funcionando sem erros, a não ser pelo fato do PHP retornar o primeiro valor que encontra como Excel, ignorando as outras variáveis da pesquisa.

Como consigo fazer para retornar o valor correto?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver o problema.

Bastava retirar o símbolo de percentual % e adicionar as chaves.

O código ficou assim: " select * from post_categoria where cds like '$cds' and cat like _utf8 '{$sub}' COLLATE utf8_unicode_ci "

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nos próximos projetos, utilize a definição do SGBD diretamente como utf8_general_ci, inclusive a conexão.

 

Vai evitar ter que fazer as alterações do collation nas queries.

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.