Как выбрать несколько записей из 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’]); он отображает только одну из записей в таблице.

Я пытаюсь создать цикл, который отображает всю информацию, собранную для каждой записи, так как вы не будете точно знать, сколько записей вы получите в любой момент времени. Любые ответы с благодарностью!

1

Решение

Вы можете получить все свои записи с изменением fetch -> fetchAll () доктор

$rows = $stmt->fetchAll();

Сессии также могут хранить массивы и объекты (они сериализуются автоматически). Таким образом, вы можете просто сохранить весь набор результатов там.

$_SESSION['courseinfo'] = $rows;

Примечание: рассмотрите возможность использования другого места хранения для всех возвращаемых данных, если их много, а в хранилище сеанса только идентификаторы.

1

Другие решения

$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 () для извлечения всей записи согласно вашему запросу

2

По вопросам рекламы [email protected]