Pues básicamente .. que en tu cadena de busqueda uses por ejemplo:
palabra otrapalabra -estapalabranolaquiero palabra
Si te das cuenta .. en una palabra (entiendase por palabra a letras separadas por un espacio) .. tenemos una de ellas que tiene como primer caracter el - .. ese es el que usaremos para decir a "nuestra lógica" que ese caracter tendrá que formar un NOT LIKE y no un LIKE como en las anteriores ..
Para ello .. esa "cadena de busqueda" .. tienes que desglosarlas en palabras .. Eso, en parte ya lo hace tu lógica:
Código PHP:
$ph=explode(" ",$uq);
for ($i=0;$i<count($ph);$i++) {
$pq="%".$ph[$i]."%";
$likes.=" OR UPPER(description) like '$pq'";
$likes.=" OR UPPER(title) like '$pq'";
$likes.=" OR UPPER(url) like '$pq'";
}
Ahora te hace falta .. ver cada "palabra" que ahí lo tienes en $ph[$i] si el primer caracter es un "-" o es distinto .. Si es "-" tendras que hacer:
$likes.=" OR UPPER(url) NOT like '$pq'";
Y si no lo es .. haces lo que ya tienes ...
Trabajalo un poco y ves preguntando las dudas. Revisa el manual de PHP (
www.php.net/manual/es) por si alguna función q usa ahí no la conoces .. Y sobre todo piensa que ese "buscador" lo único que está haciendo es "componer" una sentencia SQL (
www.mysql.com para mas info)
Un saludo,