加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP – 无法链接表以获取所需信息

发布时间:2020-12-13 17:00:36 所属栏目:PHP教程 来源:网络整理
导读:脚本 用户可以表现出参加活动晚宴的兴趣,并且管理该活动的人可以选择接受他们的请求,如果请求已经被接受,则应该禁用“接受”按钮. 什么工作 一切正常,直到需要禁用按钮的部分,信息显示正确,我很难连接数据库表,所以我可以使用我需要的信息来禁用按钮. 尝试
脚本

用户可以表现出参加活动晚宴的兴趣,并且管理该活动的人可以选择接受他们的请求,如果请求已经被接受,则应该禁用“接受”按钮.

什么工作

一切正常,直到需要禁用按钮的部分,信息显示正确,我很难连接数据库表,所以我可以使用我需要的信息来禁用按钮.

尝试

这是我的查询的样子

SELECT
r.id as request_id,r.status as dinner_status,r.dinner_id,d.name as dinner_name,d.date as dinner_date,u.first_name as user_first_name,u.last_name as user_last_name,u.id as user_id,u.description as user_description,u.profile_image as user_profile_image,c.name as user_college_name,c.id as user_college_id,c.slug as user_college_slug
FROM `requests` r
LEFT JOIN `college_dinners` d ON r.dinner_id = d.id
LEFT JOIN `user` u ON r.guest_id = u.id
LEFT JOIN `college` c on u.college_id = c.id
WHERE d.college_id = $collegeId
AND u.id = '77'

现在最重要的部分.

有一个名为邀请的表,只有在他们的晚餐请求被排除时才会保留guest_id和dinner_id.如何使用此邀请表来更新我的查询并在其中包含我可以在我的视图上启用和禁用按钮的信息?

PHP尝试

我愿意在PHP中自己解决这个问题,所以我决定使用foreach循环来获得从上面查询得到的结果,在foreach中我创建另一个查询表邀请然后使用如果我正在检查是否当前循环的dinner_id匹配dinner_id和foreach中第二个查询的guest_id相同,但是通过这样做我索引被搞砸了.

foreach ($invitations as $invitation) {
  $invitatedSQL=".....";

if ( $invitedResult['guest_id'] == $invitation['user_id'] && $invitedResult['dinner_id'] == $invitation['dinner_id'] ) {
  $isInvited = 'yes';
}
}

请注意,我在前端不需要任何帮助,它只是我遇到问题的mysql查询.我真的很感激这方面的任何帮助

解决方法

只是一个简单的左连接.如果条件为false,则将为NULL.

LEFT JOIN `invitations` i on r.guest_id = i.guest_id AND r.dinner_id = i.dinner_id

附:
您的LEFT JOIN很少像纯粹的INNER JOIN那样.你应该读一下差异.
What is the difference between “INNER JOIN” and “OUTER JOIN”?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读