Comunidad de diseño web y desarrollo en internet online

listado de amigos para cada usuario

Citar            
MensajeEscrito el 05 Mar 2009 01:37 pm
Hola estoy en un proyecto que incluye el registro de usuarios pero me gustaria que tambien cada usuario tenga un listado de amigos que serian otros usuarios, el problema es que hasta ahora no se me ocurre como realizar este enlace entre usuarios.
Un ejemplo de lo que quiero hacer esta en la siguiente pagina:
http://www.livemocha.com/profiles/view/176710?ghp

Porfavor espero me puedan ayudar ya que estoy hace bastante con este problema , muchas gracias.

Por jonycast

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Mar 2009 05:09 pm
Hola

Bueno, para solucionar este problema hay q atacar varios puntos....

Primero, la base de datos. Necesitas crear una tabla de relacion entre los usuarios, por ejemplo

| id_usuario | id_usuario_amigo | confirmo |

En donde vas a especificar los amigos de cada ususario.
Cuando el usuario A, le pide amistad al usuario B se agrega un registro en la tabla y queda en pendiente de confirmacion. Si el usaurio B lo acepta, se confirma el flag del registro anterior y ademas se agrega un nuevo registro pero con los id de usuario alreves, asi el usuario B ahora tb es amigo del A.

Ahora bien q pasa si A quiere dejar de ser amigo de B. Aca hay varios caminos, el q a mi mas me gusta es el siguiente. El usaurio A deja de ser amigo de B, se elimina el registro donde id_usuario es A e id_usuario_amigo es B y se le envia una notificacion a B informandole. En ese caso se le puede dar la opcion a B para q deje de ser amigo de A. Si elije dejar de ser amigo tambien se borra el registro donde id_usuario es B e id_usaurio_amigo es A. Sino, ese registro queda. Otra opcion es no notificar nada a B y solo borrar el regristro de A y el registro de B queda hasta q B decida por su cuenta dejar de ser amigo de A (creo q asi funcionan la gran cantidad de redes sociales).

Por otro lado, q pasa si un usuario decide borrar su cuenta. Bueno en ese caso hay 2 caminos. El mas sencillo es cuando el usuario de deseregistra eliminar todo registro donde aparezca ese usuario (ya sea en id_usuario o id_usuario_amigo). Otra opcion (q es la q utiliza facebook) es guardar el perfil como historico y no borrar nada en ningun lado (o sea te hace una baja logica y no fisica).

Bueno a partir de ahi lo podes complicar todo lo que quieras...


Saludos!

Por alfathenus

833 de clabLevel

5 tutoriales

 

buenos aires || Argentina

firefox
Citar            
MensajeEscrito el 06 Mar 2009 02:35 pm
Desde ya muchas gracias alfathenus por tu respuesta , la verdad que me abrio un poco la mente y ahora se como son los pasos y lo puse en practica. Pero me surgió una nueva complicacion con la consulta SQl.
Veamos tengo dos tablas
-La primera es la tabla "usuarios" (idusuario, nombre, apellido,etc)
-La segunda es la tabla "favoritos" (idusuario, idamigo)
Ahora al momento de hacer una consulta para que me muestre los amigos de algun usuario hice la siguiente:

SELECT * FROM usuarios,favoritos WHERE
usuarios.idusuario=$variable_idusuario
and usuarios.idusuario=favoritos.idusuario
and favoritos.idamigo
and usuarios.idusuario=favoritos.idamigo

Se que esta consulta no esta bien ya que no me devuelve ningun valor .Me podrian decir que estoy haciendo maL??

Muchas gracias

Por jonycast

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Mar 2009 09:56 pm
hola, como va...

A ver....

Te tiro este sql, fijate si te sirve

Código :

$idUsuario = "12343";
SELECT usuarios.nombre, usuarios.apellidos FROM favoritos
      RIGHT JOIN  usuarios ON
             favoritos.idamigo = usuarios.idusuario
      WHERE
             favoritos.idusuario = $idUsuario


No probe la consulta, pero la idea es q te traiga los datos de los amigos de un usuario

Saludos!

Saludos!

Por alfathenus

833 de clabLevel

5 tutoriales

 

buenos aires || Argentina

firefox
Citar            
MensajeEscrito el 06 Mar 2009 10:23 pm
Hola...probe rapidamente la consulta que me mandaste y me muestra un solo resultado cuando tengo un usuario que tiene dos amigos solo me muesta el primero de los dos amigos, igualmente pienso que es un avance, luego voy a investigar cual es el problema porque ahora estoy saliendo.

Muchas gracias por todo

Por jonycast

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Mar 2009 01:30 am
Hola alfathenus ...fue un error mio la consulta que me mandaste funciona a la pefección y me lista todos los amigos que tiene un usuario la verdad es que no conocia el "El LEFT JOIN y RIGHT JOIN" que sirven para consultas multitablas Te estoy realmente agradecido ya que hace semanas que no podia resolver este problema y me atrace bastante con el trabajo ,aunque publique este problema en otros foros no recibí una buena ayuda como aca.

Millon de gracias!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Por jonycast

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Mar 2009 02:55 pm
De nada jonycast, buenisimo que te haya servido

Saludos!

Por alfathenus

833 de clabLevel

5 tutoriales

 

buenos aires || Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.