Quantcast
Channel: Últimos conteúdos
Viewing all articles
Browse latest Browse all 14190

Criar relacionamento de amigos em comum

$
0
0

Boa tarde pessoal,
Faz alguns dias que pesquiso bastante como fazer um relacionamento de amigos em comum parecido com o do Facebook.
Pesquisei aqui no fórum, na internet e até consegui fazer funcionar algumas partes, mas logo esbarrei em outro problema que não estou conseguindo resolver. Teitei union, join e não consigo.

Quando eu visitar um usuário, eu quero que ele exiba os os amigos em comum que eu tenho com esse usuário.

Tenho 2 tabelas:

 

table_friends

id_user_friend (campo que grava o id de quem enviou a solicitação de amizade)

id_friend (id do amigo)

 

table_users
id (id do usuário)

name (nome)

thumb (foto)

Primeiro problema que consegui resolver:

Ex:
table_friends
id_user_friend = '1' e id_friend = '2'.
id_user_friend = '3' e id_friend = '2'.

 

table_users

id = '1' e name = 'FelipeMike' e thumb = 'Foto'.
id = '2' e name = 'Jéssica' e thumb = 'Foto'.

id = '3' e name = 'André' e thumb = 'Foto'.

Ou seja, o usuário 2 (Jéssica) é um amigo em comum e para eu exibir isso quando visito a página do usuário 3 (André), faço:

SELECT amigos.id_user_friend, amigos.id_friend, 
        amigos_comum.id_user_friend, amigos_comum.id_friend, 
        amigos_comum.date_friend, user.name, user.thumb FROM $this->table_friends amigos
        JOIN $this->table_friends amigos_comum 
        JOIN $this->table_users usuario
        ON amigos.id_friend = amigos_comum.id_friend 
        WHERE amigos.id_user_friend = '1' //Meu usuário 
        AND amigos_comum.id_user_friend = '3' //Usuário André
        AND amigos_comum.id_friend = usuario.id //Exibir o nome e a foto dos amigos em comum
        ORDER BY amigos_comum.date_friend DESC

Quando eu visitar a página do usuário André, ele me retorno Jéssica como amigo em comum, mas o novo problema está no campo id_friend_user e id_friend na tabela de amigos.

Eu usei no exemplo:
id_user_friend = '1' e id_friend = '2'.

 

Mas e se aqui fosse invertido:
id_user_friend = '2' e id_friend = '1'.
Como faço para o Select buscar os amigos em comum pelo id do usuário que visito tanto no campo id_user_friend como no campo id_friend?
Alguém poderia me ajudar ou me dar uma idéia?
Muito obrigado desde já!


Viewing all articles
Browse latest Browse all 14190