Facebookのメッセージの後にメッセージングシステムモデルを作成しています。 メッセージ受信トレイはスレッド化されていますが、メッセージやスレッド内で交換されたその他のメッセージを表示するためのクエリに問題があります。 dbテーブルはこのようになります。Facebookのメッセージの受信トレイ
メッセージ
- 半ば
- 配列
- CREATED_ON
- CREATED_BY
- 体
messag_recips
- 半ば
- 配列
- UID
- 状態
注:MID列がメッセージIDです。各初期メッセージをスレッドの開始と考えてください。すべての親/子であるユニークなメッセージIDを持つ代わりに、私は1つのメインスレッド(MID)を持っていて、その中にメッセージを持つことに決めました。これらはすべてSEQ(シーケンス番号)列で定義されています。残りはかなり自己説明的です。 created_byおよびそれ以降のすべてのユーザーIDは、別のユーザーIDを指す数値IDです。最後に、主キーがMIDとSEQに基づいていることです。MID/SEQごとに複数のエントリを持つことはありません。 STATUS列 - 私が欲しい、削除
のアクティブのための新しい、AのためのNのこと(または読み取り)し、Dは、これが私のクエリ
$sql = "select m.mid, m.seq, m.created_on, m.created_by, m.body, r.status from message_recips r
inner join messages m on m.mid=r.mid and m.seq=r.seq
where r.uid='$uid' and m.mid='$mid' and r.status in ('A', 'N')";
ですが、それは、現在のユーザーに送信されたメッセージのみを返します。現在のユーザによって送信されたメッセージを返す。どのように私はクエリを変更する必要がありますか?
おかげで、それは完全に働きました – MrFoh