gpt4 book ai didi

php - 在 php/pdo 和三个表中创建一个 friend 列表

转载 作者:行者123 更新时间:2023-11-29 03:22:39 25 4
gpt4 key购买 nike

如标题所述,尝试使用 mysql 和 pdo 在 php 中创建好友列表。得到了三张表,一张用户一张 friend 一张明细

用户:ID用户名

friend 们:用户身份 friend ID状态

详细信息:profileImg

foreach($db->query('SELECT * FROM FF_Users 
LEFT JOIN FF_User_Details ON FF_User_Details.user_id = FF_Users.id
LEFT JOIN FF_UserRoles ON FF_UserRoles.user_id = FF_Users.id
LEFT JOIN FF_ZIP_nb_NO ON FF_ZIP_nb_NO.Postnummer = FF_User_Details.zip
LEFT JOIN FF_User_Settings ON FF_User_Settings.user_id = FF_Users.id
INNER JOIN FF_MyFriends ON ((FF_MyFriends.user_id = FF_Users.id AND FF_Users.id) OR (FF_Users.id = FF_Users.id AND FF_MyFriends.user_id))
GROUP BY FF_Users.id') as $row) {
if ($isFriends) {
echo ' <button type="button" class="btn btn-primary btn-xs pull-right read-only">';
echo ' <i class="fa fa-user"> </i> ' . USERS_ADD_FRIEND;
echo ' </button>';
} else {
echo ' <button type="button" class="btn btn-primary pull-right btn-xs read-only disabled">';
echo ' <i class="fa fa-user"> </i> ' . USERS_IS_FRIEND;
echo ' </button>';
}
}

我在这里做错了什么?只有一遍又一遍的空白页面。

感谢所有帮助:)

最佳答案

您关于 var_dump 显示 object(PDO)#2 (0) { } 的评论让我相信您的查询根本没有返回任何数据。

我不能完全确定这是你的问题,因为我无法访问你的数据,但我觉得这一行很可疑:

INNER JOIN FF_MyFriends ON (
(FF_MyFriends.user_id = FF_Users.id AND FF_Users.id)
OR
(FF_Users.id = FF_Users.id AND FF_MyFriends.user_id)
)
  1. 首先,您的情况看起来很奇怪。
    1. 在第一部分中,您比较的是 FF_MyFriends.user_id = FF_Users.id,这看起来没问题,然后是 AND FF_Users.id,这看起来很奇怪。如果您想确保 FF_Users.id 不为 NULL,我建议您明确检查它(AND FF_Users.id IS NOT NULL)。
    2. 在第二部分中,您将比较 FF_Users.id = FF_Users.id,这将根据定义返回 true。 :)
  2. 您在所有其他表上都使用了 LEFT JOIN,但在那个表上使用了 INNER JOIN。这可能的意思是没有找到匹配的 friend ,并且数据库没有返回任何内容,因为没有匹配完成。

我建议您 a) 重新考虑是否需要 INNER JOIN 和 b) 清理您的连接条件。

我在这里有点猜测,但看起来你正试图从任何方向获取用户的所有 friend (即检查用户 A 是 A 是 B 的 friend 还是 B 是 A 的 friend ).如果是这样,请尝试:

SELECT DISTINCT *
-- etc.
INNER JOIN FF_MyFriends ON
FF_Users.id = FF_MyFriends.friendID
OR FF_Users.id = FF_MyFriends.userID

DISTINCT 很重要,因为如果 A 是 B 的 friend ,B 又是 A 的 friend ,那么您最终会得到同一行两次。

希望对你有所帮助。如果它不是您所需要的,请准确地添加关于您所需要的评论。

关于php - 在 php/pdo 和三个表中创建一个 friend 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41307095/

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