Ir para conteúdo

Arquivado

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

Superwagtel

Filtro avançado

Recommended Posts

Olá pessoal, será que alguém pode me dar uma luz e dizer onde estou errando?

criei uma comunidade onde pretendo fazer com que os usuários possam trocar mensagens.

Por enquanto consegui apenas fazer com que cada usuário envie apenas uma mensagem sem que possa receber sua(s) resposta(s)

tudo isto utilizando a tabela usu_creditos_msg

duvida-creditos-msg-1.gif

Pretendo utilizar esta chave exclusiva para que quem recebeu a mensagem possa responder utilizando a tabela usu_creditos_msg_2

com a chave exclusiva creditos_msg_id

duvida-creditos-msg-2.gif

Para isto eu criei um filtro unindo as duas tabelas INNER JOIN

usu_creditos_msg para mensagens

usu_creditos_msg_2 para respostas

Utilizando a chave exclusiva creditos_msg_id

Quando o usuário abrir a página de mensagens, mostra (por enquanto) apenas quando houver um recebe_id seu como logado SESSION Kt_login_id

Mas eu queria que abri-se também as mensagens respostas da tabela usu_creditos_msg_2

duvida-creditos-msg-3.gif

Eu tentei que o sistema mostre seu recebe_id SESSION Kt_login_id tanto de uma tabela quanto da outra também!

Alguém poderia me dizer onde estou errando:

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante

Sério isso?

Cara, coisa mais simples dependendo do seu ponto de vista,

basta que você olhe assim:

tabela MENSAGEM:

id, UsuarioRecebe, UsuarioEnvia, Mensagem, Data

Assim qualquer um pode receber mensagem, f***-se quem envia, desculpa o comportamento, estou bêbado respondendo... lol

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não há necessidade de duas tabelas para isso, uma unica tabela resolve, há uma ambiguidade dos demais campos em ambas tabelas, exceto o id autoincrement.

Para filtrar as demais mensagem usando somente uma tabela, seta o id autoincrement em outro campo do tipo int, de nomenclatura parent_id.

Ao puxar o ID da mensagem, filtra junto os parentes caso exista em uma unica consulta.

Há várias formas de se fazer isso, JOIN, IN, OR, UNION, SUBQUERY etc, de uma Googlada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Williams

Valeu pela força, eu realmente não havia dado conta da dor de cabeça que eu teria devido à ambiguidade dos campos, por isto eu já alterei a tabela usu_creditos_msg_2 inteira para:

duvida-creditos-msg-4.gif

Mas o que pretendo fazer é com que o recordset leia ambas as tabelas:

usu_creditos_msg e usu_creditos_msg_2

Depois preciso que o SQL faça o seguinte filtro do tipo:

usu_creditos_msg.recebe_id = $_SESSION['kt_login_id']

OR

usu_creditos_msg_2.recebe_id_2 = $_SESSION['kt_login_id']

Portanto minha dúvida é se isto é possível com o SQL?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É possivel sim, use OR no ON do Join

ON table1.id_user = table2.user_id AND table1.filter = xxxx || table2.filter =xxxx

Mas ainda continuo na tese que duas tabelas é uma baita POG

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.