[英]Displaying posts made by a user if that user is his/her friend with PHP
我目前正在建立自己的社交網絡,但有一個PHP問題,我不知道該如何解決。
因此,我的目的是顯示用戶本人和他的朋友發布的帖子,而如果您不是他們的朋友,那么他們的帖子將對您隱藏。 我已經做了很多研究,試圖找到答案以及實現答案,但是似乎沒有什么適合我的腳本。
因此,這是我的桌子的樣子:
用戶:密鑰,ID,全名,用戶名等...
帖子: id,feedusername,作者,feedpost
份額(又名朋友): id,userId1,userId2,狀態
目前,我正在使用while循環顯示帖子。
while($feedarray = mysql_fetch_array($search)) {
*I pull the users post data here by using that fetch_array function and echo them out*
}
$ search SQL代碼是這樣的:
$search = mysql_query("SELECT * FROM posts ORDER BY id DESC LIMIT 0,20");
目前,無論您是否與該用戶成為朋友,它都會顯示所有帖子。 這不是我想要的。
那么,如何顯示我自己的帖子和我的朋友的帖子? 並且,如果不是您的朋友說“ a”,那么您如何不向不是“ a”的朋友的用戶顯示“ a”的帖子?
換句話說,如果chaotic(userId1)是具有max(userId2)的朋友,並且他們的狀態等於2(如果status等於2,則他們是朋友。如果是1,則朋友請求處於待處理狀態。)顯示我自己的帖子(混沌的帖子)和Max的帖子? 而如果此記錄不存在或狀態等於1,我將看不到Max的帖子。
希望您理解我在說什么,並感謝您的寶貴時間。
謝謝!
混沌
因此,根據您的說法,我收集自己的帖子可能涉及到以下內容:
SELECT *
FROM posts
WHERE author = @MyUserId
因此,鑒於我們現在想要朋友,請考慮如何檢索朋友。 它將是這樣的:
SELECT userid2
FROM shares
WHERE userid1 = @MyUserId
AND status = 2
(並且可能必須進行另一個查詢來反轉userid1 / userd2列,具體取決於表的設置)。 因此,鑒於此,將兩種形式結合起來即可:
SELECT *
FROM posts
WHERE author = @MyUserID
OR author IN (
SELECT userid2
FROM shares
WHERE userid1 = @MyUserId
AND status = 2
)
您可以繼續擴展使用子選擇等的方式,以實現更具包容性/排他性,但我將由您自己決定。 如果您仍然遇到問題,請給我留言,我會盡力提供幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.