检索保存在PHP会话中的项目

时间:2013-02-21 16:01:06

标签: php session cart

我有一个PHP代码可以将项目添加到购物车,如下所示:

if (is_array($_SESSION['cart']['itemId']))
        {
    $max=count($_SESSION['cart']);
    $_SESSION['cart'][$max]['itemId']=$pid;
    $_SESSION['cart']['itemId']['qty']= $_SESSION['cart']['itemId']['qty'] + $q;
    $max=count($_SESSION['cart']);
        }
else
        {
    $_SESSION['cart']=array();
    $_SESSION['cart'][0]['itemId']=$pid;
    $_SESSION['cart']['itemId']['qty'] = $q;
    $max=count($_SESSION['cart']);
        }

然后我尝试像这样显示添加到购物车的商品:

if(is_array($_SESSION['cart']))
        {
       $max=count($_SESSION['cart']);
       for($i=0;$i<$max;$i++)
                   {
                $pid=$_SESSION['cart'][$i]['itemId'];
        $q=$_SESSION['cart'][$i]['qty'];
        if($q==0) continue;
    $query2 = $con -> prepare("SELECT * FROM item_descr WHERE id_item = :idItem");
    $query2-> bindValue (':idItem',$pid);

但是,我的所有项目都没有加载。你知道我做错了吗?

2 个答案:

答案 0 :(得分:1)

您的会话对象'cart'具有不同的元素

请参阅
    $ _SESSION [ '购物'] [$最大] [ '的itemId']​​ = $ PID;
    $ _SESSION ['cart'] ['itemId']​​ ['qty'] = $ _SESSION ['cart'] ['itemId']​​ ['qty'] + $ q;
在上面的两行$ max和'itemId'是不同的,所以你不能像数组

那样访问它们

答案 1 :(得分:0)

您需要在PHP文件的开头初始化会话:

<?php

session_start();

See the manual