Ir para conteúdo
Fórum Script Brasil
  • 0

código 'Like' usado como filtro


Guest maicon pazin

Pergunta

Guest maicon pazin

Olá,

Estou com um problema aqui pra resolver em um site de cliente...

O cliente me passou algumas palavras para serem usadas como filtro, quando o usuario do site clicar em um determinado link.

O problema é que existe palvras filtro como por exemplo "bb, abn, banco do brasil" que muitas vezes ao execultar a função procurar(listarei abaixo), o resultado são textos do Banco de Dados que não tem nada a ver com as palavras filtro, pois essas palavras ou ate mesmo as letras, acabam se quebrando. Com isso a função LIKE procurar qualquer palavra com por exemplo(BBVA) que deveria ser somente 'BB', Ou (banco são o melhor negocio do brasil) que deveria ser somente 'banco do brasil'.

Espero respostas...

código usado:

CODE

<?

$filtro=$_REQUEST['filtro'];

$filtro2=$_REQUEST['filtro2'];

echo $filtro2;

================================================================================

====

$palavra = str_replace(" ", "%", $filtro);

$palavra2 = str_replace(" ", "%", $filtro2);

if($palavra2){

//echo $palavra2;

$qr = "SELECT * FROM noticia WHERE texto LIKE '%".$palavra."%' or texto LIKE '%".$palavra2."%' order by data_noticia desc";

}else{

$qr = "SELECT * FROM noticia WHERE texto LIKE '%".$palavra."%' order by data_noticia desc";

}

$todos = mysql_query($qr) or die(mysql_error());

//echo $qr;

?>

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Oi, Maicon!

Poderia melhorar sua pergunta, por favor. Ainda não entendi o que você quer.

Denis o que ele quer é que sejam buscadas as palavras exatas, não os sub-string.

No exemplo que ele deu:

ele recebe o resultado BBVA, mas estava procurando somente 'BB'

ele recebe o resultado banco são o melhor negocio do brasil, mas deveria ser somente 'banco do brasil'

Captou?

Eu não estou certo, mas acho que se ele simplesmente omitir o %, resolve o problema dele. Inclusive o fato de ele substituir os espaços por % nas strings de pesquisa, também estão influenciando no resultado (como vemos no 2º exemplo). O que você acha?

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, Micheus!

Valeu pela dica.

Oi, Maicon!

O que você precisa é estudar sobre indices full-text.

Clique no link e leia o artigo Getting-Started-With-MySQLs-Full-Text-Search-Capabilities. Depois, se ainda houver dúvidas, post novamente.

Um abraço

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...