簡體   English   中英

我如何 SELECT 這兩個表使用單個 PDO 查詢

[英]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.

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