Ver Mensaje Individual
  #7 (permalink)  
Antiguo 14/04/2003, 10:29
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
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,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.