Ir para conteúdo

Arquivado

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

maiswebs

Perquisa no site ultilizando "+"

Recommended Posts

Coloquei uma busca em meu site. o usuario digita o que ele quer buscar (ex. churrasqueira) e escolhe o tipo de pesquisa que ele quer (ex. casas) ai aparece as casas com churrasqueira. Até ai tudo bem...

 

Gostaria de saber como eu faço para ele poder pesquisar ultilizando duas ou mais palavras..

Por exemplo:

 

Pesquisa: |Casa com churrasqueira + piscina + Frigobar|

 

E aparecer na tela todas as casa que tenham na descriçao o que ele digitou na pesquisa.

 

Se alguem puder me ajudar eu agradeço muito...

 

Valeu http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer saber como faz para separar as palavras que o usuário digitou ou como faz a busca no BD?Posta como você está fazendo a busca de "Casa com churrasqueira"

Ow e ai beleza? eu fiz assim:if (($escolha == "c") || ($escolha == "ch") || ($escolha == "r")) {$sql5 = "SELECT * FROM minha_tabela where tipo = '$escolha' AND descricao LIKE '%$busca%'"; $query = mysql_query($sql5);//$busca é onde o usuário digitou o que ele está procurando//$escolha é o tipo da busca

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sua dúvida é mais de PHP do que de MySQL.

$busca = isset($_POST['busca']) ? $_POST['busca'] : '';$escolha = isset($_POST['escolha']) ? $_POST['escolha'] : '';if ((!empty($busca)) and (!empty($escolha))){   $busca = explode('+', $busca); //esse comando vai separar o que o usuário digitou formando um array   $sql5 = "SELECT * FROM minha_tabela where tipo = '" . $escolha . "'";   if (count($busca) > 0)   {	  $sql5 .= " AND ";	  for($i=0;$i<count($busca);$i++)	  {		 $sql5 .= "descricao = '" . $busca[$i] . "'";		 if ($i < count($busca) - 1)			$sql .= " AND ";	  }   }   echo "SQL: " . $sql5;}
faz isso e diz o que aparece depois de SQL:
Ow e ai cara beleza...Obrigado ai por ta me ajudando..Eu coloquei o script que você mandou e apareceu isso aqui na frente do SQL: SELECT * FROM minha_tabela where tipo = 'r' AND descricao = 'mais'Valeu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sua dúvida é mais de PHP do que de MySQL.

$busca = isset($_POST['busca']) ? $_POST['busca'] : '';$escolha = isset($_POST['escolha']) ? $_POST['escolha'] : '';if ((!empty($busca)) and (!empty($escolha))){   $busca = explode('+', $busca); //esse comando vai separar o que o usuário digitou formando um array   $sql5 = "SELECT * FROM minha_tabela where tipo = '" . $escolha . "'";   if (count($busca) > 0)   {	  $sql5 .= " AND ";	  for($i=0;$i<count($busca);$i++)	  {		 $sql5 .= "descricao = '" . $busca[$i] . "'";		 if ($i < count($busca) - 1)			$sql .= " AND ";	  }   }   echo "SQL: " . $sql5;}
faz isso e diz o que aparece depois de SQL:
Ow e ai cara beleza...Obrigado ai por ta me ajudando..Eu coloquei o script que você mandou e apareceu isso aqui na frente do SQL: SELECT * FROM minha_tabela where tipo = 'r' AND descricao = 'mais'Valeu...
Desculpa ai eu estar te incomodando, mais ai, você me passou um script para criar uma pesquisa estilo a do google, usando o mais lembra.. entaum o script ficou dá hora funcionou certinho http://forum.imasters.com.br/public/style_emoticons/default/clap.gif mas só tem problema e gostaria que você me ajudasse, ta acontecendo o seguinte:ali do lado do "ju" tem um espaço e antes do "ma" tem outro que não deixa eu completar minha busca, queria saber se você pode me ajudar? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif EU BUSQUEI | ju + ma | e deu...SELECT * FROM minha_tabela where tipo = 'r' AND descricao like '%ju %' AND descricao like '% ma%'

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função trim ou similares irão te ajudar:

TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), TRIM([remstr FROM] str)Returns the string str with all remstr prefixes or suffixes removed. If none of the specifiers BOTH, LEADING, or TRAILING is given, BOTH is assumed. remstr is optional and, if not specified, spaces are removed.mysql> SELECT TRIM(' bar '); -> 'bar'mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx'); -> 'barxxx'mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx'); -> 'bar'mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz'); -> 'barx'

Veja http://dev.mysql.com/doc/refman/4.1/en/string-functions.html

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.