Te diré lo que hice yo para tal fin. Use la sentencia LIKE de la siguiente manera:
Supongamos que las palabras a buscar vienen de un campo de texto de nombre $buscar y hemos buscado "cinta enrollar", por tanto
$buscar ="cinta enrollar";
luego:
Código PHP:
$buscar = eregi_replace (" ","%",$buscar);
$Query = "SELECT * from tabla WHERE campo LIKE '%$buscar%' ";
Esto dara como resultado
cinta de enrollar (si lo encuentra en el campo), incluso si pones "cint enr" o cosas asi. Pero no mostrara, por ejemplo,
cinta adhesiva.
Incluso podrias filtrar algunas palabras como "de","a","al" etc... para que "cinta de enrollar" fuero lo mismo que buscar "cinta enrollar" ya que "de",etc.. no creo que sea necesario para la busqueda:
Código PHP:
$filtrar = array(" de ", " a ", " al ", " con "," del "," para ");
$buscar = str_replace($filtrar, " ", $buscar);
$buscar = eregi_replace (" ","%",$buscar);
$Query = "SELECT * from tabla WHERE campo LIKE '%$buscar%' ";
No se si es lo que buscas, pero mas o menos hace eso.