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