2013-10-19 41 views
0

我想向用戶展示他們最近從他們的朋友上傳的內容。mySQL php查詢 - 新聞/好友Feed

我有用戶朋友的ID在一個數組:

$friends

的用戶可能有潛在的,數以千計的朋友。

我可以選擇的用戶朋友1上傳:

$row = $mysqli->query("SELECT * FROM photos 
         WHERE uploader_id = ".$friend." 
         ORDER BY date_uploaded 
         DESC LIMIT ".$page.", 25"); 

但我需要找到一個所有用戶朋友上傳的。我想在迭代$friends數組的循環中這樣做,但是我可能會運行數千個mysql查詢。

我怎樣才能最有效地做到這一點?

所以澄清:

搜索「照片」錶針對由特定用戶(朋友)上傳的照片,在$friends變量中,排序date_uploaded並限制對x的結果,所以我可以有1頁, 2,3等

回答

3

使用implode用逗號連接數組元素,並使用MySQL的IN子句。

$row = $mysqli->query("SELECT * FROM photos 
        WHERE uploader_id IN (". implode(',' $friends) .") 
        ORDER BY date_uploaded 
        DESC LIMIT ".$page.", 25"); 

確保您$friends數組不包含任何unsanitized輸入。就目前而言,如果$friends以任何方式依賴於用戶輸入,則可以開放SQL注入。