1
    <?php

session_start(); 
print '<h1>Your Shopping Cart:</h1>';
print '<h4>The Product ID: '.$_SESSION['id'].' </h4>';
print '<h4>The Quantity: '.$_SESSION['quantity'].' </h4>';

$dbc = mysql_connect('127.0.0.1', 'root', ''); 
mysql_select_db('product', $dbc);

$query = "SELECT * FROM prod WHERE id='".$_SESSION['id']."'";



if ($r = mysql_query($query, $dbc)) {

while ($row = mysql_fetch_array($r)) { 
print "<p><b>Product Name: {$row['name']}<br />
             The Price: {$row['price']}<br />
             Shipping Cost: {$row['shipping']}<br />



 </p><hr />\n";
 }}
?>

此代码用于带有 Session 的购物车,但问题是它只保留一种产品。

例如,如果您购买产品 A 并在购物车中删除产品 B 然后添加产品请帮助我我想添加多个产品并打印在屏幕上##

4

4 回答 4

2

将另一个级别添加到您的购物车:

$_SESSION['cart'][$productID]['quantity'];
                 ^^^^^^^^^^^^^

所以你保留每个产品的数据。现在,您使用的是随着新产品的添加而不断覆盖的单一级别。

于 2013-04-12T20:05:38.950 回答
2

向 php 数组问好:http ://www.php.net/manual/en/book.array.php :)
基本上不是:

$_SESSION['id'] = 1234;

你会想要:

$_SESSION['products'][] = array('id'=>1234, 'quantity'=>10);

然后你将迭代 $_SESSION['products'] 像

foreach($_SESSION['products'] AS $product){
   echo $product['id'];
}
于 2013-04-12T20:08:01.457 回答
0
$_SESSION['cart'] = array();
$_SESSION['cart']['1'] = 2;//add product A,id=1,quality=2
$_SESSION['cart']['2'] = 3;//add product B,id=2,quality=3

//get all items
foreach($_SESSION['cart'] as $item)
{
    print_r($item);
}
于 2013-09-04T16:12:23.330 回答
0

您应该在单个会话变量中维护您的购物车$_SESSION['cart']。添加新产品时,您可以使用它,

$_SESSION['cart'] = array();         //initialize once
array_push($_SESSION['cart'], array("id" => $id, "quantity" => $q));
print_r($_SESSION['cart']);

这样,您可以在购物车中拥有多个产品。

对于特定框架 CodeIgniter,有一个类提供购物车功能。看看这个

于 2013-04-12T20:16:38.623 回答