作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个社交网络。我希望用户能够订阅人们。理论上,当用户单击订阅按钮时,PHP 会将该用户的 ID 添加到“订阅”列下的 MYSQL 列表中的数组中。现在,我想要一个新闻提要风格的主页。我想知道,如果我通过 PHP 拉取“订阅”数据,我怎样才能只显示用户订阅的人的帖子(也在 MYSQL 表中)?
最佳答案
使用 UNION 将不同表中的所有帖子组合起来,然后使用“IN”子句根据当前 userID 获取您想要关注的所有 userID:
示例:
$userFavs = "SELECT userID FROM favs WHERE followerID = '#loggedinUserID#'"
mysql_query("SELECT 'wall' as type, body, date FROM wall WHERE userID IN ($userFavs)
UNION
SELECT 'photo' as type, caption, date FROM photos WHERE userID IN ($userFavs) UNION... etc
ORDER BY date DESC");
如果您通过 mysql_fetch_array() 运行查询,它将返回如下内容:
Array => {
[0] => { type = "wall", body = "This is a wall update", date = "1234567890" },
[1] => { type = "photo", caption = "Us at the beach", date = "..." },
...
}
每次调用“UNION”时,您需要确保每个 SELECT 语句中的列数相同,否则它将不起作用。您可以/fake/列,就像我对上面的 type
列所做的那样。
关于php - 从 PHP 数组中选择 MYSQL 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10116001/
我是一名优秀的程序员,十分优秀!