簡體   English   中英

顯示用戶發表的帖子(如果該用戶是他/她的PHP朋友)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM