我正在我的网页上使用关注系统,我需要向用户显示他们关注的用户的帖子。我在mysql中有一个名为follow
的表,其中包含user1_id
和user2_id
。如果id为34的用户跟随id为45的用户,则将其存储在该表中。所以我需要的是选择有人关注的所有用户ID并从另一个表中查找他们的帖子。
我需要一些SELECT * FROM table1 WHERE u_id=[users id-s that they follow].
的命令
我已经尝试过这样的事了:
$id = $_SESSION['user_id'];
$follow_query = mysql_query("SELECT user_two_id FROM follow WHERE user_one_id=$id");
while($follow_array = mysql_fetch_array($follow_query)){
$sql = mysql_query('SELECT home FROM `matches` WHERE `u_id` IN (' . implode(',',array_map('intval', $follow_array)) . ')');
$sql_array = mysql_fetch_array($sql);}
但它不起作用。
这是下表:
它显示用户33正在跟随用户34和用户35。
这是我需要显示的数据存储的表格:
但我需要向用户显示他正在关注的用户的帖子,在这种情况下,来自ID为34和35的用户。
答案 0 :(得分:0)
$id = $_SESSION['user_id'];
#select ID of users who are following a particular user
$follow_query = mysql_query("SELECT user_two_id FROM follow WHERE user_one_id='{$id}'");
#create an array in which we will contain "home" of users
$homes = array();
while($follower_id = mysql_fetch_array($follow_query)){
$query = mysql_query("SELECT home FROM matches WHERE u_id='{$follower_id}'");
while ($home = mysql_fetch_array($follow_query)){
$homes[] = $home;
}
}
的变化:
答案 1 :(得分:0)
$ follow_array就像你命名的那样,是一个数组。您实际上想要访问$ follow_array ['user_two_id']
答案 2 :(得分:0)
您应该使用JOIN
重新组合2个查询,以便将处理留给MySQL。
$id = $_SESSION['user_id'];
$offset = ($pn - 1) * $itemsPerPage;
$query = sprintf("SELECT home, u_id FROM matches m
JOIN follow f ON m.u_id = f.user_two_id
WHERE f.user_one_id = '%d'
AND m.date > DATE_SUB(NOW(), INTERVAL 1 WEEK)
ORDER BY m_id DESC
LIMIT %d,%d", $id, $offset, $itemsPerPage);
$result = mysql_query($query);
if (!$result) {
$message = 'Invalid query : ' . mysql_error() . "\n";
$message .= 'Whole query: : ' . $query;
die($message);
}
while ($row = mysql_fetch_assoc($result)) {
echo $row['home'];
echo $row['u_id'];
}
mysql_free_result($result);