<?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中删除B,则添加A产品 请帮我 我想添加多个产品并在屏幕上打印##
答案 0 :(得分:2)
在购物车中添加其他级别:
$_SESSION['cart'][$productID]['quantity'];
^^^^^^^^^^^^^
因此您可以保留每个产品的数据。现在你正在使用一个单独的级别,当你添加新产品时,你会不断覆盖它。
答案 1 :(得分: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'];
}
答案 2 :(得分:0)
您应该将购物车保存在单个会话变量$_SESSION['cart']
中。添加新产品时,您可以使用
$_SESSION['cart'] = array(); //initialize once
array_push($_SESSION['cart'], array("id" => $id, "quantity" => $q));
print_r($_SESSION['cart']);
这样,您可以在购物车中拥有多个产品。
对于特定的框架CodeIgniter,有一个提供购物车功能的类。检查this。
答案 3 :(得分: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);
}