gpt4 book ai didi

php - PHP 的 MySQL 查询结合两个表中的数据

转载 作者:行者123 更新时间:2023-11-30 00:23:47 25 4
gpt4 key购买 nike

我正在我的页面上开发一个关注系统,我需要只向用户显示他们关注的用户的帖子。我在 mysql 中有一个名为 follow 的表,其中包含 user1_iduser2_id。如果 id 为 34 的用户正在关注 id 为 45 的用户,则会将其存储在该表中。所以我需要的是选择某人关注的所有用户 ID 并从另一个表中找到他们的帖子。我需要一些命令来 SELECT * FROM table1 WHERE u_id=[他们关注的用户 id-s]。我已经尝试过这样的事情:

$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);}

但它不起作用。

这是下表:

follow table

显示用户 33 正在关注用户 34 和用户 35。

这是存储我需要显示的数据的表:

other table

但我需要只向用户显示他所关注的用户的帖子,在本例中是 ID 为 34 和 35 的用户的帖子。

最佳答案

您应该使用 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);

关于php - PHP 的 MySQL 查询结合两个表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23035910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com