Php 能否在一个会话中存储多个阵列?
能否将多个阵列推送到一个会话中 例如Php 能否在一个会话中存储多个阵列?,php,ajax,session,Php,Ajax,Session,能否将多个阵列推送到一个会话中 例如 array_push($_SESSION['mySession'], $array); 问题:当我将另一个数组推送到会话时,它将删除会话中的最后一个数组 我的情况是: 从数据库中获取特定项 $meubel = $_GET['meubel']; $sql = "SELECT * FROM mphp6_meubels WHERE naam LIKE '$meubel' "; $stm = $pdo->prepare($sql); $stm->ex
array_push($_SESSION['mySession'], $array);
问题:当我将另一个数组推送到会话时,它将删除会话中的最后一个数组
我的情况是:
从数据库中获取特定项
$meubel = $_GET['meubel'];
$sql = "SELECT * FROM mphp6_meubels WHERE naam LIKE '$meubel' ";
$stm = $pdo->prepare($sql);
$stm->execute();
如果其不存在,则创建新会话:
if(!isset($_SESSION['meubels'])){
$_SESSION['meubels'] = array();
}
制作特定数组
while($row = $stm->fetch()){
$meubel = [
'naam' => $row['naam'],
'type' => $row['type'],
'omschrijving' => $row['omschrijving'],
'prijs' => $row['prijs'],
];
}
将其推送到会话
array_push($_SESSION['meubels'], $meubel);
单击按钮时,会发出ajax请求:
var url = 'test.php?meubel=' + meubel;
输出div中的会话
document.getElementById("div3").innerHTML = result;
如果需要所有ajax代码,请告诉我
示例:
当您购买座位时,将其添加到会话中。座位上有类似的属性:名称、描述和价格。因此,会话必须包含多个数组
您每次通过循环都要重新定义
$meubel
,因此只有一个数组。您想动态追加每一行[]
:
while($row = $stm->fetch()){
$meubel[] = [
'naam' => $row['naam'],
'type' => $row['type'],
'omschrijving' => $row['omschrijving'],
'prijs' => $row['prijs'],
];
}
然后您可能想要合并而不是推送,但不确定您想要的最终结果:
$_SESSION['meubels'] = array_merge($_SESSION['meubels'], $meubel);
您可以尝试
$\u SESSION['meubels']=array\u merge($\u SESSION['meubels'],$meubel)
我希望我的会话“meubels”具有多个数组“meubel”。您需要显示所需的结果数组的示例。我在问题中添加了一个示例。如果您不清楚,请告诉我。我相信二维数组被调用了。但是您的权利我重新定义了$meubel
,每次我从数据库中获取特定行时,它都必须将其添加到会话数组中。