[英]How do I SELECT these two tables using single PDO query
我有兩個表,我想使用單個 PDO 查詢和位置占位符來 SELECT。
我在這里遇到了類似的問題以找到解決方案,但似乎沒有一個與我遇到的問題相匹配。
以下代碼是我的腳本的一部分:
// query users table to retrieve its contents
if (isset($_SESSION["user_id"]["0"])) {
// select a particular user by user_id
$user_id = isset($_POST["user_id"]) ? $_POST["user_id"] : '';
$stmt = $pdo->prepare("SELECT * FROM users WHERE user_id=?", $_SESSION["user_id"]["0"]);
$stmt->execute([$user_id]);
$user = $stmt->fetch(); # get user data
}
// query courses table to retrieve its contents
$cid = $_POST["cid"] ?? NULL;
if (is_null($cid)) {
$stmt = $pdo->query("SELECT * FROM courses");
} else {
$stmt = $pdo->prepare("SELECT * FROM courses WHERE cid = ?");
$stmt->execute([$cid]);
}
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo '<option value="">' . "Select a course to proceed" . '</option>';
foreach ($results as $row) {
echo '<option value=" ' . $row["cid"] . ' ">' . $row["c_name"] . '</option>';
}
除了從課程表中回顯$row["cid"]
(課程 ID)和$row["c_name"]
(課程名稱)之外,我還從同一個課程表中回顯以下內容: $row["code"]
, $row["duration"
], $row["start"]
在 users 表中,我有登錄用戶的"user_id"
、 "firstname"
、 "lastname"
、 "username"
、 "email"
,我也想將它們包含在上面的 foreach 循環中。 這意味着用戶必須登錄。
SELECT p. p_id, p.cus_id, p.p_name, c1.name1, c2.name2
FROM product AS p
LEFT JOIN customer1 AS c1
ON p.cus_id=c1.cus_id
LEFT JOIN customer2 AS c2
ON p.cus_id = c2.cus_id
您可以通過這樣做來實現這一點。 還有2-3種方法,但這是最簡單的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.