как сохранить в переменной сеанса массив, извлеченный из базы данных, чтобы отправить его на другие веб-страницы в php - PullRequest
0 голосов
/ 13 марта 2019

У меня есть некоторые данные, которые я восстановил из базы данных на странице лечения, и затем я пытаюсь отправить эти данные на другие веб-страницы с помощью переменной сеанса, например:

while($enr = mysqli_fetch_assoc($res))
{
    $_SESSION['med'] = $enr;

    header("location: recherche.php");

    //print_r($_SESSION['med']);
}

, когда я print_r($_SESSION['med']); на странице обработки у меня есть такой массив:

Array ( [nom] => CASPER [prenom] => ARMAND ) 
Array ( [nom] => WILLIAMS [prenom] => GEORGE ) 
Array ( [nom] => VANASTEN [prenom] => ROBERT ) 
Array ( [nom] => MARTIN [prenom] => ALAIN ) 
Array ( [nom] => Jacque [prenom] => ERIC ) 
Array ( [nom] => LUCAS [prenom] => ANNIE )

Но когда я пытаюсь извлечь этот массив данных на другие страницы, подобные этому:

<?php
        if (isset($_SESSION['med'])) {
            foreach ($_SESSION['med'] as $champ) {
                echo "$champ -----";
            }
        } else {
            echo "no data";
        }
?>

У меня есть толькопоследний такой:

LUCAS -----ANNIE -----

Итак, как мне получить все данные?

1 Ответ

1 голос
/ 13 марта 2019

Причина, по которой ваш print_r выглядел хорошо, заключается в том, что вы включили его в цикл. Вы переписываете переменную $ _SESSION ['med'] каждую строку, и последняя строка была вашим результатом, который вы получите, когда распечатаете свой сеанс позже.

Вы должны попробовать это:

  while($enr = mysqli_fetch_assoc($res))
    {
        $_SESSION['med'][] = $enr;




    }
//print_r($_SESSION['med']);
header("location: recherche.php");

А потом:

if (isset($_SESSION['med'])) {
        foreach ($_SESSION['med'] as $champ) {
            echo $champ['nom']." -----";
         }
 } else {
      echo "no data";
 }
...