Ir para conteúdo

POWERED BY:

Arquivado

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

Silvaninha

[Resolvido] Select de dados entre dois usuários

Recommended Posts

Pessoal,

 

Estou construindo um sistema de mensagens onde preciso retornar as mensagens que a pessoa enviou e as que ela recebeu de um mesmo usuário, enfim, exibir as mensagens entre A e B.

 

O que queria é:

Fulano (exibir o nome e foto de fulano): mensagem

Beltrano (exibir o nome e foto de Beltrano): mensagem

 

 

Estou usando o seguinte select:

 

 

strSQL = "SELECT a.*, b.* FROM mensagens a, usuarios b WHERE (a.cod_amigo = "&cod_amigo&" AND a.cod_usuario = "&codigo_usuario&" AND a.cod_amigo=b.cod_usuario) OR (a.cod_usuario = "&cod_amigo&" AND a.cod_amigo = "&codigo_usuario&" AND a.cod_usuario=b.cod_usuario) ORDER by a.id ASC"

 

Ele está retornando somente as mensagens trocadas entre Fulano e Beltrano. O problema é na hora de imprimir os dados.

 

Ele só exibe os dados de Fulano. Quando imprime a mensagem de Beltrano, aparecem os dados de Fulano.

 

Como poderia resolver isso? Alguma idéia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT a.*, b.* FROM mensagens a, usuarios usuario,usuarios amigo ...

 

e faça o join de a.cod_usuario com usuario.cod_usuario e o de a.cod_amigo com amigo.cod_usuario

Compartilhar este post


Link para o post
Compartilhar em outros sites

como você vai dar o join com a mesma tabela usuarios 2 vezes Pra pegar informações do de quem eivou e de quem recebeu, não esquece de dar Alias para as tabelas e colunas

 

SELECT a.mensagem, b.nome, b.foto, c.nome nomeAmigo,c.foto fotoAmigo FROM mensagens a
INNER JOIN usuarios b ON a.cod_usuario/*Recebeu*/  = b.cod_usuario
INNER JOIN usuarios c ON a.cod_amigo/*(Enviou)*/ = c.cod_usuario
WHERE (a.cod_usuario = "&cod_amigo&" AND a.cod_amigo = "&codigo_usuario&")
OR (a.cod_usuario = "&cod_amigo&" AND a.cod_amigo = "&codigo_usuario&")
ORDER by a.id ASC

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.