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

Relacion de amigos

Estas en el tema de Relacion de amigos en el foro de Bases de Datos General en Foros del Web. Hola de nuevo amigos de FOROSDELWEB Mi pregunta es como puedo hacer para que mis usuarios sean amigos entre si Bueno mi idea es la ...
  #1 (permalink)  
Antiguo 11/07/2011, 15:46
 
Fecha de Ingreso: mayo-2011
Ubicación: Mexico
Mensajes: 22
Antigüedad: 12 años, 10 meses
Puntos: 2
Pregunta Relacion de amigos

Hola de nuevo amigos de FOROSDELWEB

Mi pregunta es como puedo hacer para que mis usuarios sean amigos entre si Bueno mi idea es la sig:

Tengo barios usuarios ok digamos pedro, paco, luis, juan, carla etc...

digamos Unsuario Pedro Inicio sesion y vio el perfil de Carla y hay un boton de Enviar solicitud
eso si lo hacve mi boton y la solocitud la manda a una tabla llamada solicitudes don de guarda manbre del usuario que solicito y nombre del que va a recivir la solicitud OK

al Iniciar sesion Carla en la parte de Solicitudes Busca en la tabla "Solicitudes" Si existe su nambre en la parte de "Recib_solici" y si si muestra que ha y una o mas...

en caso de haber al dar clic mustra que el Usuario Pedro quiere ser tu amigo(a) y hay dos botones que dicen "ACEPTAR" "IGNORAR" bueno en ignorar para no handarce con rodeos de que lo lo quiere agregar o de que acerptar mas tarde en "IGNORAR" se elimina la solucitus y para que el otro usuario no sienta feo no le avisa de que su solicitud fue rwechazada jejeje

Bueno en el Boton "ACEPTAR" manda los datos de "El usuario que acepto y el solicitante a una tabla llamada "AMIGOS" digamos que queda asi:

ojo: el usuario que acepto la solicitud se gusrda primero y el solicitante despues ok

id_ami es Auto invrementable ok

id_ami ----User_acepto -----id_acepto -----User_Solic ------id_solic -----Fecha_acep
1 carla 1 Pedro 2 NOW()
2 Carla 1 Juan 3 ""
3 Paco 4 Luis 5 ""
4 Paco 4 Carla 1 ""
5 Luis 5 Carla 1 ""
6 lola 6 Carla 1 ""

Asi que si Vemos :
Carla tendria 5 Amigos que son: (pedro,juan,paco,luis,lola)
Pedro 1 amigo que es: (carla)
Paco 2 amigos que son: (lius,carla)
Juan 1 amigo que es: (carla)
Luis 2 Amigos que son: (carla,paco)
Lola 1 amigo que es: (Carla)
OK
Hay dos cosas que quiero saber y son: 1
Como hago para que cuando inicies sesion te diga cuantos amigos tienes y sus nombres:
osea que si "carla" inicio sesion le diga tienes 5 amigos y al darle clic vaya a otra pagina donde aparescan los nombres de solo los amigos de Carla Ok

Recuerden que carla puede estar en la columna de "User_acepto" o en "User_Solic " ok digamos que busca en "User_acepto" y encuentra "carla" como hago para que me imprima el "User_Solic" ok
la otra pregunta es tambien como hago para que el boton de enviar solicitud se desaparesca si ya son amigos "supongamos que al momento de entrar a ver el perfil de "carla" si ya son amigos el boton ya no este Ok

porque puede que si cuente cuantos amigos tienes pero para saber quienes son es donde tengo el problema Ok

En verdad espero y puedan ayudarme o si me recomiendan hacer eso de los amigos de otra manera se los agradeceria mucho ok
espero y haber dejado todo clero y que le entiendan GRACIAS POR SU ATENCION
  #2 (permalink)  
Antiguo 12/07/2011, 05:40
 
Fecha de Ingreso: noviembre-2006
Mensajes: 28
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: Relacion de amigos

yo lo haria así:

Tabla Users:
id , name ,etc...

Tabla Friends:
id , id_user_1 (FK) , id_user_2 (FK) , status ( podria ser un ENUM('pendiente','ignorado','ok') con default 'pendiente' o un FK a una TABLA status ).

cuando el usuario 1 haga una solicitud el estado siempre será pendiente y cuando el usuario 2 acepte el estado cambiará a 'ok'...

consulta para saber todos los amigos cuando inicias sesión:
SELECT COUNT(Friends.id) as TOTAL_AMIGOS, Friends.name
FROM Friends
INNER JOIN Users ON Users.id = Friends.id
WHERE Users.id = $id_del_usuario AND status='ok'
  #3 (permalink)  
Antiguo 13/07/2011, 17:25
 
Fecha de Ingreso: mayo-2011
Ubicación: Mexico
Mensajes: 22
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Relacion de amigos

Cita:
Iniciado por zazoomauro84 Ver Mensaje
yo lo haria así:

Tabla Users:
id , name ,etc...

Tabla Friends:
id , id_user_1 (FK) , id_user_2 (FK) , status ( podria ser un ENUM('pendiente','ignorado','ok') con default 'pendiente' o un FK a una TABLA status ).

cuando el usuario 1 haga una solicitud el estado siempre será pendiente y cuando el usuario 2 acepte el estado cambiará a 'ok'...

consulta para saber todos los amigos cuando inicias sesión:
SELECT COUNT(Friends.id) as TOTAL_AMIGOS, Friends.name
FROM Friends
INNER JOIN Users ON Users.id = Friends.id
WHERE Users.id = $id_del_usuario AND status='ok'
Gracias intentare hacerlo de sa manera espero y me ayudes si tengo problemas o dificultades jejeje gracias

Etiquetas: php, relacion, tabla
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 00:07.