所以我有一个用电子邮件地址注册的用户。 这保存在用户表中。 现在,该用户可以使用日历预订系统预订课程(他们必须手动输入电子邮件地址)并且该数据存储在预订表中。 现在问题是,我想展示特定用户所做的所有预订,通过他们的电子邮件地址选择(可以
echo $userRow['email'];
工作正常,并显示登录用户的正确电子邮件地址。 现在如何根据此电子邮件地址选择预订?我尝试过这样的事情:
$relevantEmail = $userRow['email'];
$get_booking = mysql_query("SELECT date, start
FROM bookings
JOIN users
ON bookings.email = '$relevantEmail' " );
while($row = mysql_fetch_row($get_booking))
{
echo $row[0] . " " . $row[1] ;
echo "\r\n";
}
但是这不知何故输出了非常奇怪的结果 - 只预订了3个课程并将其分配给3个用户 - 每个用户获得每个课程
喜欢的东西:
乔 - 1级
刺 - 等级1
josh - 1级
乔 - 第2课
刺 - 2级
josh - 2级
乔 - 3级
刺 - 3级
josh - 3级
请帮助
答案 0 :(得分:0)
由于您没有使用Users
进行任何操作,请删除联接,然后使用WHERE
:
$get_booking = mysql_query("SELECT date, start
FROM bookings
WHERE bookings.email = '$relevantEmail' " );
请注意,mysql_ *函数在PHP7中被删除,在以前的版本中已弃用。切换到PDO或mysqli,并利用预准备语句和参数绑定。这将阻止您对SQL注入开放。
答案 1 :(得分:0)
@aynber似乎无法标记你...... 是的,将JOIN更改为WHERE完成了工作,只发现我在前面的代码中有一点不匹配,因此它没有按预期工作。 现在就像一个魅力, 非常感谢
答案 2 :(得分:-1)
嗨,好友不需要使用联接查询
$sql=mysql_query("select * from bookings where email_id = (select email_id from login where email_id = '$relevantEmail')");