0

我有一个购物车,我想保存 $_SESSION['cart'] ,其中包含用户选择的产品的 $product_id => $quantity。例如:

[cart] => Array
    (
        [366] => 2000
        [215] => 456
    )

首先我序列化 $_SESSION['cart'] 在我的数据库中插入它之前。

<?php
if($_SESSION['cart']) 
{
    $pedido= serialize($_SESSION['cart']);
}
?>

$sql1="insert into pedido(orden) values ('$pedido')";

现在在另一个页面中,我想查看 $_SESSION['cart']。所以我使用:

$sql2 = "SELECT orden FROM pedido where id_pedido = '$ID'";
$rs2 = mysql_query($sql2, $conexio) or die("Error al consultar: ".mysql_error()); 
$row2 = mysql_fetch_row($rs2);
$id_usuario=$row2[0];
$_SESSION['cartguardado']= unserialize($id_usuario);

我知道在这最后一步我做错了什么。任何机构都可以帮助我并帮助我找到错误?

4

2 回答 2

0

尝试输出 $row2

$sql2 = "SELECT orden FROM pedido where id_pedido = '$ID'";
$rs2 = mysql_query($sql2, $conexio) or die("Error al consultar: ".mysql_error()); 
$row2 = mysql_fetch_row($rs2);
print_r($row2);
$id_usuario=$row2[0];
$_SESSION['cartguardado']= unserialize($id_usuario);

如果 $row2[0] 为空,那么您的数据有问题

于 2012-12-11T20:28:23.773 回答
0

我注意到您序列化了会话代码,但没有以您可以用于 Php 程序的方式呈现它,即

if($_SESSION['cart']) 
{
    $pedido= serialize($_SESSION['cart']);
}

根据我的小经验,我认为您需要先反序列化代码,以便您可以使用它,即

if($_SESSION['cart']) 
{
    $pedido = unserialize(serialize($_SESSION['cart']));
}
于 2017-03-25T19:17:52.043 回答