如何将一个表中的变量用作php中另一个表的SELECT参数

时间:2016-11-28 15:19:22

标签: php mysql

所以我有一个用电子邮件地址注册的用户。 这保存在用户表中。 现在,该用户可以使用日历预订系统预订课程(他们必须手动输入电子邮件地址)并且该数据存储在预订表中。 现在问题是,我想展示特定用户所做的所有预订,通过他们的电子邮件地址选择(可以

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级

请帮助

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')");