簡體   English   中英

如何在php中將一個表中的變量用作另一表的SELECT參數

[英]How can I use a variable from one table as a SELECT parameter for another table in php

所以我有一個用電子郵件地址注冊自己的用戶。 這保存在用戶表中。 現在,該用戶可以使用日歷預訂系統預訂課程(他們必須再次手動輸入電子郵件地址),並且此數據存儲在預訂表中。 現在的問題是,我想顯示特定用戶進行的所有預訂,通過他們的電子郵件地址進行選擇(可以

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級

喬什-班1

喬-2級

刺-2級

喬什-類2

喬-3級

刺-3級

喬什-班3

請幫忙

由於您沒有使用Users做任何事情,因此刪除聯接,而只需使用WHERE

$get_booking = mysql_query("SELECT date, start
    FROM bookings
    WHERE bookings.email = '$relevantEmail' " );

請注意,mysql_ *函數已在PHP7中刪除,並在以前的版本中已棄用。 切換到PDO或mysqli,並利用准備好的語句和參數綁定。 這將阻止您進行SQL注入。


@aynber似乎無法為您添加標簽...是的,將JOIN更改為WHERE可以完成工作,只是發現我在前面的代碼中有一點不匹配,因此無法按預期工作。 現在就像魅力一樣,非常感謝

嗨,好友,無需使用聯接查詢

$sql=mysql_query("select * from bookings where email_id = (select email_id from login where email_id = '$relevantEmail')");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM