Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá gente,
Como fazer para gerar uma sql com as palavras digitadas no campo busca, tentei assim:
$arrayBusca = explode(" ", $busca);
if(is_array($arrayBusca))
{
$whereBusca = " AND ( ";
foreach ($arrayBusca as $palavra)
{
$whereBusca .= " p.nome like'%".$palavra."%' OR p.modelo like '%".$palavra."%' OR";
}
$whereBusca = substr($whereBusca,0, -2);
$whereBusca .= " )";
}Como faço para ocultar esse de ou outro que vier a ser digitado?
flws...
Ficaria muito trabalhoso fazer isso!
Na verdade tem que ser omitido da busca as conjunções que forem digitas, tipo:
da, de, do, na, no, em, e, a, com, para, sem etc...
Teria uma maneira de fazer isso?
Alguém já fez algo parecido.
E c vc criar uma tabela de black list com as palavras indesejadas, pesquisa normalmente e no final coloca que a palavra não pode estar na tabela de blacklist?
select * from estoque
where (codigo like $lavra or titulo like $palavra ...) and palavra not in blacklist
Um "quebra galho", precisa adaptar/melhorar!
<?php
# Remove Caras
function tiralixos($string){
$converte_isso = array(
"da", "de", "do", "na", "no", "em", " e ", " a ", "com", "para"
);
$por_isso = array(
"", "", "", "", "", "", "", "", "", ""
);
return str_replace($converte_isso, $por_isso, $string);
}
# Teste
$string = "da de do na no em e a com para agora meu amigo já era!";
echo tiralixos($string);
# Retorno: agora meu amigo já era!
?>Vou adaptar o exemplo que o Marcelo passou. Valeu gente.
$whereBusca .= " p.nome like'%".$palavra."%' OR p.modelo like '%".$palavra."%' OR AND p.nome NOT LIKE '%de%'";