从PHP数组中选择MYSQL数据
我正在创建一个社交网络。我希望有一个用户能够订阅的人。理论上,当用户单击subscribe按钮时,PHP会将该用户的ID添加到MYSQL列表中subscribed to列下的数组中。现在,我想要一个新闻提要风格的主页。我想知道,如果我通过PHP获取订阅的数据,我怎么能在用户订阅的MYSQL表中只显示帖子呢?我想你正在寻找一种在DB中访问数组的方法。也许会有帮助 使用UNION组合来自不同表的所有帖子,然后使用IN子句根据当前用户ID获取您想要遵循的所有用户ID: 例如:从PHP数组中选择MYSQL数据,php,mysql,arrays,Php,Mysql,Arrays,我正在创建一个社交网络。我希望有一个用户能够订阅的人。理论上,当用户单击subscribe按钮时,PHP会将该用户的ID添加到MYSQL列表中subscribed to列下的数组中。现在,我想要一个新闻提要风格的主页。我想知道,如果我通过PHP获取订阅的数据,我怎么能在用户订阅的MYSQL表中只显示帖子呢?我想你正在寻找一种在DB中访问数组的方法。也许会有帮助 使用UNION组合来自不同表的所有帖子,然后使用IN子句根据当前用户ID获取您想要遵循的所有用户ID: 例如: $userFavs =
$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\u fetch\u数组运行查询,它将返回如下内容:
Array => {
[0] => { type = "wall", body = "This is a wall update", date = "1234567890" },
[1] => { type = "photo", caption = "Us at the beach", date = "..." },
...
}
您需要确保每次调用UNION时,每个SELECT语句中的列数相同,否则它将无法工作。您可以/fake/columns,就像我对上面的type列所做的那样。您可以向我们展示相关表的模式吗?好的。谢谢你的信息。我现在有了基本的想法,但我是个初学者。我现在只想要文本状态。我假设我所要做的就是使用$userFavs=SELECT userID FROM favs,其中followerID='loggedinUserID'mysql\u querySELECT'wall'作为类型,body,date FROM wall,其中userID在$userFavs ORDER BY date DESC中;是的。那就行了。但是,请确保使用正确的索引和缓存,否则这可能是一个非常慢的查询。