Ir para conteúdo

POWERED BY:

Arquivado

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

Paulinho Cé

[Resolvido] filtro mysql por nome composto

Recommended Posts

Boa tarde amigos,

 

Pesquisei mas não encontrei nada que resolvesse e como este fórum é frequentado por bons programadores, solicito mais uma vez uma ajuda:

A tabela: pedidos_orçamento é preenchida por um formulario online por isso o usuario_id só pode ser incluido após a verificação do pedido num front-end local. No formulário online existe o campo usuario mas esse campo é preenchido com Nome completo, o que dificulta a pesquisa posterior numa sql para listar os pedidos de orçamento ao cliente via browser. Dizer dificulta é generosidade pois não consegui uma forma de filtrar os resultados pelo nome completo, já tentei o str_replace (" ","",$variavel) mas continua dando erro na sql.

 

Algum amigo conhece uma forma de pesquisar por nome completo?

No php eu recebo esse nome completo atravéz da sessão $_SESSION['nome'] mas filtrar por ele é o problema.

 

Muito obrigado por alguma ajuda,

 

Um abraço.

 

Paulinho Cé

Compartilhar este post


Link para o post
Compartilhar em outros sites
mas continua dando erro na sql.

qual erro que dá ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro é o seguinte:

Invalid query:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Rodrigo Cé' at line 1 Whole query:SELECT * FROM pedidos_orcamento WHERE nome =Angelo Rodrigo Cé

 

Sou programador Delphi há mais de 15 anos e pela minha experiencia em sql, percebo que a string com o nome completo está sendo truncada, o php lê o nome mas quando chega no espaço entre o primeiro e o segundo nome ele considera a string terminada e os dois ultimos nomes ficam causando erro, como se fosse sintaxe errada. Me perdoem pela ignorancia mas sou iniciante em html e php por isso estou tão perdido assim.

 

 

Estive testando a função explode sugerida pelo Cristiano e consegui retirar os espaços entre os nomes que compõe o nome completo passado pela session.

$pi = explode(" ", $_SESSION['nome']);

$usera = $pi[0].$pi[1].$pi[2];

 

Até aí beleza, mas então surge outro problema: Se a session passa o nome completo com espaços, evidencia que a gravação no mysql tambem é com espaços, fácilmente percebido no formulário de entrada e no próprio PHPMYADMIN, onde se visualiza os dados do banco.

A questão se resume então no formato da string passada passada para a query no PHP.Se eu retirar os espaços, a query não vai encontrar nenhum registro pois no banco o nome completo está com espaços.Usei tambem o like no lugar do = mas sem sucesso.

Ou é alguma configuração no banco ou não tem solução.

 

Nunca me deparei com um problema de codificação que não pudesse ser resolvido, vamos pensar juntos e tenho certeza que resolveremos mais esse problema.

 

Após vários testes, finalmente funcionou.

Sem qualquer função, e alterei tanto que nem sei mais onde estava o erro, agora a expressão ficou assim:

$query = "SELECT * FROM pedidos_orcamento WHERE nome ='{$_SESSION['nome']}'";

$result = mysql_query($query);

 

Um abraço à todos,

 

Paulinho Cé

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.