繁体   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