Ir para conteúdo

POWERED BY:

Arquivado

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

marcoskywalker

[Resolvido] Campo de busca por palavras chaves complexo

Recommended Posts

Oi pessoal, sou novo por aqui! ;)

 

Eu estava montando um "Google imagens", pra apresentar pro professor.

O único problema que eu estou encarando aqui é o seguinte, cada foto tem suas palavras chaves correspondentes.

Então, se as palavras chaves tiverem há ver com a busca, deve exibir tal resultado.

 

Aí que está, como que vou separar os valores de uma coluna por ',' e fazer com que se torne parte do resultado caso tenha há ver com a busca?

 

Grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso eh comando SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso eh comando SQL

Sim, MySQL com PHP

Se postei no lugar errado, foi mal, sou novato por aqui. :S

 

Eu preciso fazer a pesquisa de acordo com as palavras-chaves separadas por ','.

Eu fiz de uma forma, porém, ele só funciona na ordem certinha.

 

Ex: Star Wars

 

Se eu coloco "Wars Star", ele não retorna nada.

 

Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou com o mesmo problema,

 

no meu sql esta assim: SELECT entrada_id, entrada_titulo FROM ".$pref."entradas WHERE entrada_tags LIKE '%".$tags."%' AND entrada_id <> $id ORDER by entrada_data_ini DESC

a variavel tags contem algumas palavras de um select: tipo: greve, publico, trabalho

 

mas a busca só funciona quando a variavel tags tem apenas uma palavra

 

alguem pode me ajudar?A

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dessa forma você vai ter que usar expressões regulares, montando uma +/- assim:

$q = $_GET['q']; //o índice da busca
$words = explode(' ', $q); //quebra a palavra pelos espaços
$regexp = join('|', $words);

 

A sentença SQL vai ficar assim:

SELECT entrada_id, entrada_titulo FROM ".$pref."entradas WHERE  entrada_tags RLIKE '".$regexp."'  AND entrada_id <> $id ORDER by  entrada_data_ini DESC

Compartilhar este post


Link para o post
Compartilhar em outros sites

que tal, no lugar disso:

$words = explode(' ', $q); //quebra a palavra pelos espaços
$regexp = join('|', $words);

 

usar um str_replace(), trocando o espaço por pipe logo de vez ? :lol:

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.