Ir para conteúdo

POWERED BY:

Arquivado

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

Insites

consultar produtos

Recommended Posts

Salve galera do imasters!!!Seguinte, tenho a tabela abaixo, deixei só o necessário:

  `produto` varchar(250) default NULL,  `descricao` text,  `marca` varchar(50) default NULL,  `equipamento` varchar(50) default NULL,  `modelo` varchar(50) default NULL, 

é uma tabela de produtos para um site tipo submarino, estou fazendo a minha consulta da seguinte maneira:

SELECT * FROM produtos where (produto like'%$busca%' or descricao like'%$busca%' or marca like'%$busca%' or modelo like'%$busca%' or equipamento like'%$busca%') order by id desc;

as variaveis ele está recebendo de um form em php.quando faço uma consulta por apenas um nome tipo HP ou impressora ele retorna os valores beleza, porém quando tento fazer uma consulta com mais de uma palavra não está pegando nada tipo impressora hp a consulta retorna 0, não sei se é problema no meu sql que é basico ou se é no tratamento dos dados de entrada.qualquer ajuda será bem aceita, valeu!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

e ae galera,como estou com o meu projeto atrasado, resolvi fazer no braço mesmo, segue aí abaixo para dar uma olhada e melhorar é claro, pois como estou com pouco tempo fiz na corrida, hehehehe

include("conexao.php");$busca=$_POST['busca'];$busca = trim($busca);$busca=$busca." ";$inicio=0;$count=0;//separa as palavras colocando cada uma em uma posição do array consulfor ($i=0; $i<=strlen($busca); $i++) { if ($busca[$i]==" ") {  $posicao=$i-1;  $variavel="";  for ($x=$inicio; $x<=$posicao; $x++) {  $variavel=$variavel.$busca[$x];  }  $inicio=$i+1;   $consul[$count]=$variavel;  $count++;  }  }// faz um loop e dentro do loop um select com cada palavra jogando o resultado para o proximo select$count=$count-1;for ($i=0; $i<=$count; $i++) { $nome=$consul[$i]; $sql = "SELECT * FROM produtos where "; $sql.="(produto like'%$nome%' or "; $sql.="descricao like'%$nome%' or "; $sql.="marca like'%$nome%' or "; $sql.="equipamento like'%$nome%' or "; $sql.="modelo like'%$nome%')"; if ($i!="0") {  if (mysql_num_rows($res)==0){  $i=99999;  $sql.=" and id=0";  } else {   $sql.=" and (";  for ($x=0; $x<mysql_num_rows($res); $x++) {    $sql.="id=".mysql_result($res,$x,"id");    $posicao=mysql_num_rows($res)-1;    if ($x==$posicao){    $sql.=")";     } else {    $sql.=" or ";    }    }  } }  $res = mysql_query($sql,$con);  }

se alguem aí tiver alguma melhora para esse script, posta aí que analiso com mais tempo, falow!!!!!!

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.