您可以将多个阵列推送到一个会话吗?
例如
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代码,请告诉我。
示例:
购买席位后,将其添加到会话中。座位的属性类似于:名称,描述和价格。因此,会话必须包含多个数组。
答案 0 :(得分:2)
您每次都要在循环中重新定义$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);