首页 > 解决方案 > 如何在会话变量中保存从数据库中提取的数组以将其发送到 php 中的其他网页

问题描述

我有一些数据比我从治疗页面中的数据库中恢复的数据,而且我尝试通过会话变量将这些数据发送到其他网页,如下所示:

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 -----

那么,我该怎么做才能拥有所有数据?

标签: phparrayssession-variables

解决方案


您的 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";
 }

推荐阅读