<?php
foreach ($res as $value) {
$sql2="select * from dadao_cart where userid='$userid' and goodid='$goodid'";
$res2=mysqli_fetch_all(mysqli_query($conn,$sql2));
$_SESSION['cart']=$res2;
var_dump($_SESSION['cart']);
}
?>
<?php
require 'conn/conn.php';
var_dump($_SESSION['cart']);
?>
第一页我把数据库的查询结果保存在session里,应该是一个二维的数组:array(1) { [0]=> array(4) { [0]=> string(1) "1" [1]=> string(1) "1" [2]=> string(1) "1" [3]=> string(1) "6" } } array(1) { [0]=> array(4) { [0]=> string(2) "27" [1]=> string(1) "2" [2]=> string(1) "1" [3]=> string(1) "4" } } array(1) { [0]=> array(4) { [0]=> string(2) "31" [1]=> string(1) "3" [2]=> string(1) "1" [3]=> string(1) "1" } } array(1) { [0]=> array(4) { [0]=> string(2) "30" [1]=> string(1) "4" [2]=> string(1) "1" [3]=> string(1) "7" } },但到了第二页却只显示最后一项
<?php
foreach ($res as $value) {
$sql2="select * from dadao_cart where userid='$userid' and goodid='$goodid'";
$res2=mysqli_fetch_all(mysqli_query($conn,$sql2));
$cart=json_encode($res2);
$cart11[] =$cart;
}
$_SESSION['cart'] = $cart11[];
?>
<?php
require 'conn/conn.php';
var_dump($_SESSION['cart']);
?>
你每次都将新的对象赋值给同一个会覆盖
你这样每次查询出来的都是一维数组,所以循环保存到session里面的都只是最后一次循环查询到的数据。
先把每次循环的查询结果保存到一个新的数组,循环结束后再把新数组保存到session
我把代码改了一下
<?php
foreach ($res as $value) {
$goodid=$value[0];
$sql2="select * from dadao_cart where userid='$userid' and goodid='$goodid'";
$res2=mysqli_fetch_all(mysqli_query($conn,$sql2));
$cart=[];
array_push($cart, $res2);
?>
但还是不行。。。
传值;session["temp" ] = "(这里填你要传值给session的参数)";
赋值:string temp = session["temp" ].toString();
不用php,不过应该是值被覆盖了