1

カートにアイテムを追加するための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);

しかし、私のアイテムはどれもロードされていません。私が間違っていることを知っていますか?

4

2 に答える 2

1

セッションオブジェクト「カート」にはさまざまな要素があります


$ _SESSION ['cart'] [$ max] ['itemId']​​ =$pid;を参照してください。
$ _SESSION ['cart'] ['itemId']​​ ['qty'] = $ _SESSION ['cart'] ['itemId']​​ ['qty'] + $ q;
上記の2行では、$maxと'itemId'が異なるため、配列のようにアクセスすることはできません。

于 2013-02-21T16:10:31.813 に答える
0

PHPファイルの先頭でセッションを初期化する必要があります。

<?php

session_start();

マニュアルを見る

于 2013-02-21T16:02:12.503 に答える