Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Renato =)

Último amigo logado

Recommended Posts

Então, tenho uma tabela que indica os usuários que são amigos.

 

ela possue 4 campos: ID, ID_UM, ID_DOIS e ACEITO

ID é o ID da amizade;

ID_UM é o id de quem enviou o pedido de amizade;

ID_DOIS é o id de quem recebeu e

ACEITO verifica se a amizade proposta já foi aceita.

 

Na tabela de login, criei um campo chamado "ULT_LOG_ID", que serve para verificar os últimos usuários logados.

 

 

Fiz uma query que pegava os amigos de certo ID, com um comando php ela ficou assim:

 

$amigo = mysql_query("SELECT * FROM `amigos` WHERE (`ID_DOIS`='$perfil_id' OR `ID_UM`='$perfil_id') AND `ACEITO`='1'", $sql);

$linha = mysql_fetch_array($amigo);

$id_um = $linha['ID_UM'];
$id_dois = $linha['ID_DOIS'];

if($id_um == $perfil_id){ $id_amigo = $linha['ID_DOIS']; }
if($id_dois == $perfil_id){ $id_amigo = $linha['ID_UM']; }

Ela funciona certinho.

 

Mas agora estava tentando fazer aparecer os últimos 5 amigos logados e não consegui.

A idéia é fazer um relacionamento da tabela amigos e da tabela login...

 

A consulta deveria pegar os IDs dos amigos da tabela (como na consulta acima) e relacionar com os IDs da tabela login, ordenando por ULT_LOG_ID decrescente.

 

 

Obrigado pela atenção ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se entendi seu BD direto basta colocar outros OR junto de ID_DOIS, ID_UM e etc até CINCO. Certo?

 

Mas pra lhe poupar código, se os ID's são números usei WHERE `campo` IN(1,2,3,4,5)

 

Se for string até dá pra fazer colocando aspas entre as strings, mas isso é outra história.

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui fazer uma query assim:

 

SELECT amigos.ID_UM, amigos.ID_DOIS, amigos.ACEITO, login.ID, login.NICK, login.ULT_LOGH, login.ULT_LOGD, login.ULT_LOGID FROM amigos , login WHERE (amigos.ID_UM = login.ID AND amigos.ID_UM != $id) OR (amigos.ID_DOIS = login.ID AND amigos.ID_DOIS != $id) AND amigos.ACEITO = '1' GROUP BY login.ID ORDER BY login.ULT_LOGID DESC LIMIT 5

grandinho, mas funfou ^^"

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.