わかりました。dbに次のようなメッセージテーブルがあります。
id
thread_id
from_user
to_user
message
私が抱えている問題は、これらのメッセージをサイトに表示することです。プライベートメッセージの場合と同様に、メッセージを表示できるのは受信者と送信者だけです。そしてもう1つ重要なことがあります。メッセージはスレッドに関連しているため、送信者がスレッドを作成したユーザーに連絡すると(ユーザーはスレッド作成者にのみメッセージを送信でき、連絡を受けるすべてのユーザーは自分が作成したスレッドを持っている必要があります)、この会話は次のようになります。このスレッドにのみ関連します。だから、今私が試したことを確認してください:
SELECT *
FROM messages
WHERE thread_id = '$thread_id'
AND (from_user = '$from' OR from_user ='$to' )
AND ( to_user = '$to' OR to_user = '$from' )
これはほとんどの場合に機能しますが、私が疑問に思っていたのは、これがメッセージを表示するユーザーのみに制限するために使用される古典的なクエリであるかどうかです。
$thread_id is ID of the thread passed to query
$from is $_SESSION['id']
$to is ID of thread owner ( user who receives the message )
私はこれを少数のユーザーでテストしましたが、何かが正しくありません。1つが送信したメッセージが1つしか表示されないことがありますが、返信が表示されません