Как выбрать несколько записей из SQL и вставить в сессию
Я ищу, как вставить несколько записей из таблицы SQL в переменную сеанса или в несколько уникальных переменных сеанса.
$userID = $_SESSION['user']['id'];
$coursequery = "
SELECT
coursename,
location,
description
FROM courses
WHERE
teacherID = '$userID'
";
try
{
$stmt = $db->prepare($coursequery);
$result = $stmt->execute();
}
catch(PDOException $ex)
{
die("Failed to run query: " . $ex->getMessage());
}
$row = $stmt->fetch();
$_SESSION['courseinfo'] = $row;
Таблица "курсы" содержит несколько записей, каждая из которых - идентификатор учителя, идентифицируемый с текущим идентификатором пользователя, определенным в начале. Когда я печатаю_r($_SESSION['courseinfo']); он отображает только одну из записей в таблице.
Я пытаюсь создать цикл, который отображает всю информацию, собранную для каждой записи, так как вы не будете точно знать, сколько записей вы получите в любой момент времени. Любые ответы с благодарностью!
2 ответа
Вы можете получить все свои записи, изменив документ fetch -> fetchAll()
$rows = $stmt->fetchAll();
Сессии также могут хранить массивы и объекты (они сериализуются автоматически). Таким образом, вы можете просто сохранить весь набор результатов.
$_SESSION['courseinfo'] = $rows;
Примечание: рассмотрите возможность использования другого места хранения для всех возвращаемых данных, если их много, а в хранилище сеанса только идентификаторы.
$userID = $_SESSION['user']['id'];
$coursequery = "
SELECT
coursename,
location,
description
FROM courses
WHERE
teacherID = '$userID'
";
try
{
$stmt = $db->prepare($coursequery);
$result = $stmt->execute();
}
catch(PDOException $ex)
{
die("Failed to run query: " . $ex->getMessage());
}
while ($row = $stmt->fetch()):
$row['YourColumn'];
endwhile;
Используйте цикл while() для извлечения всей записи согласно вашему запросу