Ir para conteúdo

POWERED BY:

Arquivado

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

JefFlash

Pesquisa inteligente com like

Recommended Posts

Olá pessoal, estou com uma dúvida em uma coisa que acredito ser simples, porém como procurei e não achei nada já que o termo de pesquisa no google fica difícil para explicar, estou postando aqui:

Preciso de realizar uma pesquisa no banco de dados que quando o usuário digite uma palavra ou mais mesmo que não sejam em sequência ele retorne o resultado, exemplo:

 

Existe um produto no banco de dados com o nome de "Seda lisa vermelha".

Com meu sql de agora ele só retorna o resultado enquanto a pessoa digitar "Seda lisa... etc" mas eu preciso que retorne mesmo quando a pessoa digite "Seda vermelha". Esta é minha consulta atual, pois estou usando o autocomplete do jQuery UI:

 

$req = "SELECT prod "
."FROM produtos "
."WHERE (prod LIKE '%".$_REQUEST['term']."%') OR (`id` LIKE '%".$_REQUEST['term']."%')";

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

o like no banco de dados funciona dessa maneira mesmo, ele pega o que você digitou e busca em trechos da frase.

 

quando você digita seda ele pega essa palavra e busca em frases do campo.

ex: digitar ana se tiver juliana ele vai trazer também, agora se digitar " ana"(palavra com um espaço no começo) não vai trazer juliana(por que teria que esta assim juli ana)

 

ele pega essa string e vai buscando dessa forma no banco de dados.

 

 

tem que procurar o cliente se adaptar ao sistema.

logico que tem que fazer o que o cliente pede, mais algumas coisas tem que fazer com que ele se adapte ao seu sistema, se não você vai fazer um programação imensa delegando o sistema, e pode apresentar um problema maior mais na frente, para resolver e uma besteirinha, mais por conta da quela programação imensa, você vai ter que fazer uma outra programação maior ainda

 

OBS:

volto a repetir não e querendo dizer que, não e para fazer uma necessidade do cliente.

mais veja bem necessidade e uma coisa perfumaria e outra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

o like no banco de dados funciona dessa maneira mesmo, ele pega o que você digitou e busca em trechos da frase.

 

quando você digita seda ele pega essa palavra e busca em frases do campo.

ex: digitar ana se tiver juliana ele vai trazer também, agora se digitar " ana"(palavra com um espaço no começo) não vai trazer juliana(por que teria que esta assim juli ana)

 

ele pega essa string e vai buscando dessa forma no banco de dados.

Entendi, mas aqui na empresa temos uma aplicação em Delphi, em que quando pesquisamos os produtos basta digitar "seda verm" para que ele mostre o produto mesmo sem a palavra "lisa". Essa aplicação utiliza o interbase e Delphi, não tenho acesso ao código fonte, mas sei que é possível... Obrigado de qualquer forma.

 

...

volto a repetir não e querendo dizer que, não e para fazer uma necessidade do cliente.

mais veja bem necessidade e uma coisa perfumaria e outra.

Eu entendi o que você quis dizer Erison, mas não é pedido do cliente. Eu que estou desenvolvendo e quero melhorar a interação do usuário com o sistema, pois temos produtos do tipo "Crepom bobina liso amarelo", até a pessoa chegar no produto vai demorar muito sendo que ela poderia chegar digitando apenas crepom amarelo, entende?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, mas aqui na empresa temos uma aplicação em Delphi, em que quando pesquisamos os produtos basta digitar "seda verm" para que ele mostre o produto mesmo sem a palavra "lisa". Essa aplicação utiliza o interbase e Delphi, não tenho acesso ao código fonte, mas sei que é possível... Obrigado de qualquer forma.

 

...

Eu entendi o que você quis dizer Erison, mas não é pedido do cliente. Eu que estou desenvolvendo e quero melhorar a interação do usuário com o sistema, pois temos produtos do tipo "Crepom bobina liso amarelo", até a pessoa chegar no produto vai demorar muito sendo que ela poderia chegar digitando apenas crepom amarelo, entende?

entedie, cara lembrar de alguma função do banco de dados, depois poste aqui esta usando mysql?

Compartilhar este post


Link para o post
Compartilhar em outros sites

entedie, cara lembrar de alguma função do banco de dados, depois poste aqui esta usando mysql?

Isso mesmo, acho que vou precisar dividir a string recebida em um array para cada espaço nela e montar um novo array com essa string formatada para coicidir com o que está no banco, não vejo outra forma, mas quando eu resolver posto aqui. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu penso em uma alternativa no PHP que talvez não seja a mais certa por questoes de performance...

 

Penso em você desmembrar a string da pesquisa, explode ela em um array, e pra cada termo, faz uma pesquisa... seria isso que você precisa?

 

Exemplo:

$pesquisar = "bobina vermelha";
$pesquisar = explode("",$pesquisar);

for($i = 0; $i < count($pesquisar); $i++)
{
 // * Query da pesquisa com um termo de cada vez
}

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.