mySQL php查询 - 新闻/朋友提要

时间:2013-10-19 15:49:41

标签: php mysql

我想向用户展示最近从他们的朋友上传的内容。

我在数组中有用户朋友ID:

$friends

用户可能有数千名朋友。

我可以从以下用户朋友中选择上传:

$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页等。

1 个答案:

答案 0 :(得分: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数组不包含任何未经过类型化的输入。如果$friends以任何方式依赖于用户输入,那么您现在可以使用SQL注入。