I have two MySQL tables, which I want to SELECT using a single PDO query and positional placeholders.
I've been going through similar questions here to find a solution, but none seems to match the issues I'm having.
The following code is the section of my script:
<?php
// 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>';
}
Apart from echoing $row["cid"]
(course ID) and $row["c_name"]
(course name) from the courses table, I also want to echo the following from the same courses table: $row["code"]
, $row["duration"]
, $row["start"]
In the users table, I have the logged in user's "user_id
", "firstname
", "lastname
", "username
", "email
", which I also want to echo in the above foreach loop. That means the user must be logged in.
Thank you in advance for your time and help.