Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Hacer consulta de usuarios a la base de datos?

Estas en el tema de Hacer consulta de usuarios a la base de datos? en el foro de Mysql en Foros del Web. Y saber quien es tu amigo, a quien le enviaste solicitud, quien te la envio, y quien no es tu amigo. 2 tablas @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 20/07/2013, 23:41
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Hacer consulta de usuarios a la base de datos?

Y saber quien es tu amigo, a quien le enviaste solicitud, quien te la envio, y quien no es tu amigo.

2 tablas

Código tabla usuarios:
Ver original
  1. usuarios
  2.  
  3. id,
  4. campos


amigos

Código tabla amigos:
Ver original
  1. id,
  2. idusuario,
  3. idamigo,
  4. estado


el idusuario indica quien envió la solicitud y estado me dice si ha sido aceptada o no.

miren lo crucial esta en esta parte

Código SQL:
Ver original
  1. SELECT *
  2. FROM usuarios
  3. LEFT OUTER JOIN amigos ON (amigos.idamigo = usuarios.id)

donde el idusuario que vera los usuarios sea el idusuario 315

idusr,idamig,idusuario,estadosolicitud
322, 315, 315, 'Aceptar solicitud'

316, 315, 315, 'Aceptar solicitud'

, , , 316, 'Agregar a mis amigos'

315, 317, 317, 'Cancelar Solicitud'

315, 318, 318, 'Eliminar de mis amigos'

el campo idusuario es el id, que identifica al usuario que se muestra

estos son los datos que me arroja,
aqui hay varios casos el de las comas vacias es por que ese no esta en la tabla de amigos, asi que lo pone nullo y pone el agregar amigos, eso esta bien.

el cancelar solicitud lo pone por que el 315 es el logeado y debe aparecer que envio solicitud
el eliminar amigos aparece por que el estado de la solicitud es que fue aceptada y por eso aparece..

el caso malo son los primeros dos.
en donde el idusuario se repite, cosa que no debe, por que el usuario logeado no debe ver usuarios repetidos.

en este caso se repite por que el 315 es idamigo, y tiene razon en hacerlo pues el filtro en la consulta asi esta...

como hacer para que no me repita los usuarios pero que me los ponga todos?
estoy un poco enredado.


esa consulta me los manda pero solo si el amigo conincide.
y si pongo un or lo repite
como seria una forma de que no repitiera los usuarios.

ocupo que me muestre los usuarios registrados y que me aparezca el campo agregar amigo o eliminar de mis amigos o cancelar solicitud enviada o aceptar solicitud.

eso ya se hacerlo, lo dificil es el filtro left...

de antemano gracias
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra

Etiquetas: campo, join, select, tabla, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:33.