Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/08/2012, 06:33
roncco
 
Fecha de Ingreso: abril-2012
Mensajes: 63
Antigüedad: 12 años
Puntos: 2
Ni NOT LIKE ni WHERE NOT EXISTS

A ver si alguien me puede echar una mano. Os comento.

En la BD tengo una tabla con un campo tipo text donde están las ids de todos los usuarios que un determinado usuario tiene bloqueados. Cada vez que un usuario bloquea a otro se añade al campo 'bloqueados' un guión y la id del usuario bloqueado. De esta manera, el campo bloqueados de cada usuario tendría esta forma:

-42-154-88 etc.

Vale, ahora se trata de que cuando un usuario busca a otros, no le salgan aquellos usuarios que tiene bloqueados dicho usuario. Lo he probado de dos maneras diferentes, partiendo de la premisa de que la variable $id contiene la id de un usuario bloqueado.


Código PHP:
Ver original
  1. "SELECT  nick FROM usuarios
  2. WHERE conectado = 's'
  3. AND bloqueados NOT LIKE '%-$id-%'";

y tampoco funciona así

Código PHP:
Ver original
  1. "SELECT  nick FROM usuarios
  2. WHERE conectado = 's'
  3. AND NOT EXISTS (
  4.        SELECT nick FROM usuarios
  5.        WHERE bloqueados LIKE '%-$id-%' )";

Lo curioso es que si lo hago al revés, esto es, LIKE en lugar de NOT LIKE, encuentro a los usuarios bloqueados, así que por lo tanto lo que estoy haciendo mal tiene que ver con la negación de la condición, pero no sé ver el fallo.

Gracias anticipadas y perdón por el ladrillazo que he soltado.