Jump to content


Photo

Filtrar Busca


  • Faça o login para participar
3 replies to this topic

#1 CSFInfo

CSFInfo

    Normal

  • Usuários
  • 81 posts
  • Sexo:Não informado

Posted 22/07/2005, 19:35

Estou criando um sistema de busca e me deparei com um problema ele recebe as palavras explode e busca por cada palavra acontece que se estiver mais de um espaço entre as palavras e/ou preposições como "e, de" entre outros elas prejudicam a busca.

Como faço para banir da busca essas variáveis criadas

$palavras = explode(" ", $palavra);  //Cria variaveis cada palavra


$pal = count($palavras);
$i =0;

foreach($palavras as $valor){
      $where .= " nome LIKE '%$valor%' OR  descricao LIKE '%$valor%' OR
      $ordem = "nome LIKE '$valor%' DESC ,nome LIKE '%$valor%' DESC";
      $destacar[] = "$valor"; // Destacar palavras buscadas
 $i++;
 }

$where = substr ($where, 0, strlen ($where) - 2);


#2 scrax1000

scrax1000

    Turista

  • Usuários
  • 47 posts
  • Sexo:Não informado

Posted 22/07/2005, 20:53

tente usar o ereg_replace() para filtrar o resultdo

exemplo

$variavel = ereg_replace(" ","",$resultado);


no exemplo acima vc irar trocar o espaço por um vazio isso é " " por "" ....


Caso nao saiba muito sobre essa funcao ... eu aprendi aqui:
http://www.superphp....cat=86&func=395

É isso ae ... fuiz
ScraX.dEsiGNeR

#3 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 23/07/2005, 01:17

Olhe isso:

<?php

$string = "livros   de  e php";
print preg_replace("~( |de|e)+~", " ", $string);

?>



[]'s
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#4 CSFInfo

CSFInfo

    Normal

  • Usuários
  • 81 posts
  • Sexo:Não informado

Posted 25/07/2005, 01:05

Funcionou perfeito desta forma ele retira excesso de espaços e as palavras exatas com a ER \b, antes ele retirava qualquer parte de uma palavra.

print preg_replace("~( |\bde\b|\be\b| )+~", "", $palavra);




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq