2014-12-31 30 views
3

我想知道是否有人可以幫助我。我正在開發一個私人消息中心,使用戶能夠通過前端將PM發送給對方。收件箱工作正常,但是我想添加一個頁面,您可以點擊用戶名,然後您可以看到所有與此用戶和當前登錄用戶之間發送的消息。將每個用戶的所有信息分組併發送給每個用戶的信息

例如:

用戶1
消息
消息B
消息C
消息d

用戶2
消息
消息B
消息C

用戶3
消息
消息B
消息C
消息d
羣發E

在我的數據庫我有與所有用戶的表:

id | user_login | user_pass | user_nicename | user_email | user_url | user_registered | user_activation_key 

我有一個表中的消息的信息:

id | parent_id | from_user | to_user | send_date | last_date | message_title | message_contents | status | to_del | from_del 

表1中的用戶ID與PARENT_ID(在答覆的形式嵌套消息)和FROM_USER和to_user於表2

隨着對應

global $wpdb; 
$result = $wpdb->get_results("SELECT table1.id, table1.user_nicename, table2.id, 
table2.from_user, table2.message_title FROM table1 
INNER JOIN table2 ON table1.id=table2.from_user 
GROUP BY user_nicename" ); 

foreach($result as $row) 
{ 
echo $row->user_nicename." <br> ".$row->message_title."<br>"; 
} 
?> 
:下一個查詢(這是我用過之後,我發現這裏#2的基礎上),我能夠迴應來自FROM_USER列的結果,但是我想響應所有郵件,並給用戶發送

任何人都可以闡明它並指出我進入正確的方向?我想我需要使用像INNER JOIN這樣的東西來將to_user添加到查詢中,但是我有點迷失了。

如果您需要更多信息,請告訴我。第一次在這裏尋求幫助,所以我不知道我是否提供了足夠的信息:)

非常感謝您的關注和幫助!

回答

1

試試這個:

SELECT t1.id, t1.user_nicename, t2.id, t2.from_user, t2.message_title 
FROM table1 t1 
INNER JOIN table2 t2 ON t1.id IN (t2.from_user, t2.to_user) 
ORDER BY t1.id; 

如果你想要特定用戶的信息,然後使用下面的查詢:

SELECT t1.id, t1.user_nicename, t2.id, t2.from_user, t2.message_title 
FROM table1 t1 
INNER JOIN table2 t2 ON t1.id IN (t2.from_user, t2.to_user) 
WHERE t1.id = 1; 
+1

非常感謝!這是行得通的!我將在即將到來的日子裏討論一下它,看看我能否在頁面中進一步實現它。實際上,我試圖對用戶進行概述,當您單擊用戶名時,您將看到登錄用戶和他/她點擊的用戶之間的所有消息。哦,新年快樂! :D – nurdhood

+0

嗨Saharsh,我一直在擺弄你的代碼。它正在工作,但我仍然努力一點,以我想要的方式得到結果的結果:) 當我使用你的代碼,然後執行foreach {}我在上面的代碼中提到,我得到爲每個消息標題添加一個用戶名(用戶名+消息標題,用戶名+消息標題等),而不是:用戶名和屬於該消息的所有消息(如:用戶名+消息標題+消息標題+消息標題等。想法我怎麼能做到這一點?提前感謝你! – nurdhood

3

可以使用GROUP_CONCAT函數這樣做。

Select table1.id, table1.user_nicename, 
     group_concat(table2.message_title SEPARATOR "|") as Message 
FROM table1 
LEFT JOIN table2 
ON table1.id=table2.parent_id 
GROUP BY table2.parent_id 

您將通過| 使用PHP數組爆炸來分隔消息。

+0

非常感謝你的快速回復!我還沒有得到它的工作,但它是有道理的,你在暗示:)我要去擺弄它這些天!新年快樂btw! – nurdhood

+0

謝謝!祝你新年快樂! –

+0

給我一個upvote!如果它適合你! –