prueba con MATCH AGAINST... antes de implementar esto, deberas saber que el MATCH AGAINST solo funciona con campos tipo FULLTEXT KEY en la BD, asi que te recomiendo leer un poquito al respecto en google.. o vas a tu BD y cambias tus campos a FULLTEXT, al menos en los que buscas las coincidencias.
te dejo un ejemplo de funcionamiento, pero deberas adaptarlo.. si es que comprendes lo que te dije mas arriba:
Código PHP:
$palabras= $_REQUEST["busqueda"];
$buscar = mysql_real_escape_string($palabras);
//CUENTA EL NUMERO DE PALABRAS
$trozos=explode(" ",$buscar);
$numero=count($trozos);
if($numero == 1) {
//SI SOLO HAY UNA PALABRA DE BUSQUEDA SE ESTABLECE UNA INSTRUCION CON LIKE
$query_Rs="SELECT * FROM productos
WHERE titulo LIKE LOWER('%$buscar%')
ORDER BY id DESC" ;
} elseif($numero > 1) {
//SI HAY UNA FRASE SE UTILIZA EL ALGORTIMO DE BUSQUEDA AVANZADO DE MATCH AGAINST
//busqueda de frases con mas de una palabra y un algoritmo especializado
$query_Rs = "SELECT *
MATCH (titulo)
AGAINST ('$buscar' IN BOOLEAN MODE) AS coincidencias
FROM productos
WHERE MATCH (titulo)
AGAINST ('$buscar' IN BOOLEAN MODE)
ORDER BY coincidencias DESC";
}
en este caso, titulo es el campo FULLTEXT donde se va a desarrollar el algoritmo Match Against..