私はプライベート メッセージング システムに取り組んでいます。ソーシャル ネットワーク メッセージングのように見えます。タイトルはなく、関連する pms がフォーラム スレッドのように表示されます。
私はpmsを追跡するために2つのテーブルを持っています
pm_sessions : pm_session , sender , receiver, pm_counter
pm : id , pm_session , text , date , sender
pm_session は pm のラッパーのように機能します
ユーザープロファイルで、現在のユーザーからpmを送受信しているユーザーのリストを表示したい
問題は、受信者と送信者のユーザーを別々に表示したくないことです。私の男と話しているすべてのユーザーを1つのリストに入れたいのです
これが私が念頭に置いていたものであり、今ではすべての IF ステートメントでこのように機能しません
$current_user = $_session['userid'];
$query = "
select pms.sender , pms.receiver,
count(pms.otheruser) as total_dialogs_with_this_user ,
u.username as other_user_name , u.id as other_user_id
from pm_session pms
//// joining to the users table on the other user id
if($current_user = pms.sender)
JOIN users u on pms.receiver= u.id
if($current_user = pms.receiver)
JOIN users u on pms.sender = u.id
WHERE pms.reciver = $current_user || pms.sender = $current_user
/// grouping by other user id
if($current_user = pms.sender)
group by pms.receiver
if($current_user = pms.receiver)
group by pms.sender ";
結果は次のようになると思います
HELLO max ... you have been talking to :
ross... 3 dialogs
joey ... 4 dialogs
chandler ... 5 dialogs
これは、受信者用と送信者用の 2 つのクエリで簡単に記述できますが、前述のように、それらを分離したくありません