所购商品用session保存,不要直接入库。
只有当客户确认购买时再连同客户信息一同入库,这样至少在客户放弃购买时无须删除库中的无效信息。
预备购买的商品可用二维数组保存,无论是添加、修改、删除还是显示均很方便
使用session保存购物车的另一个好处是当客户选购商品时无须预先登录
只有当客户确认购买时再连同客户信息一同入库,这样至少在客户放弃购买时无须删除库中的无效信息。
预备购买的商品可用二维数组保存,无论是添加、修改、删除还是显示均很方便
使用session保存购物车的另一个好处是当客户选购商品时无须预先登录
按你的意思是:当用户点击 订购 时,把这个商品用session保存起来,确认购买才入库。这样的话那客户所选的商品均得放入一个session数组中,可这个数组如何定义呢?
Array (
[0] => Array (
[id] =>
[num] =>
)
[1] => Array (
[id] =>
[num] =>
)
)
即索引数组的每一个元素是一个数组,表示一个商品。
至少需要保存“商品编号”和“欲购数量”。
session_start();
$_SESSION['test'][0] = "a";
$_SESSION['test'][1] = "b";
$_SESSION['test'][2] = "c";
$_SESSION['test'][3] = "d";
$_SESSION['test'][4] = "e";print_r ($_SESSION['test']);
?>
这个数组是不是在商品列表(shooping.php)页里面定义的呢?
我做的页面链接是这样的:index.php(每件商品下方均有一个'订购'按钮,点'订购')--->商品列表(shooping.php)
Array (
[0] => Array (
[id] =>
[num] =>
)
[1] => Array (
[id] =>
[num] =>
)
)
这中间的[id] and [num]是不是用session注册过的变量呢?能给一个实例吗?
<?php
session_start();
$_SESSION['test'][0] = "a";
$_SESSION['test'][1] = "b";
$_SESSION['test'][2] = "c";
$_SESSION['test'][3] = "d";
$_SESSION['test'][4] = "e";print_r ($_SESSION['test']);
?>
能加上注释吗?所定义的test是什么变量呢?
“订购”处理shooping.php:
<?php
session_start();
$_SESSION['商品'][] = array(商品编号=>xxx,所购数量=>xxx,...);
根据具体的传递方式决定变量的取值方式
?>
我先试一下,若不明白再请教
现在有一点眉目了,执行不了时再来请教
data.php //商品目录
<?php
$data = array(
s001 => array(名称=>"甲",单价=>100.00),
s002 => array(名称=>"乙",单价=>110.00),
s003 => array(名称=>"丙",单价=>90.00),
s004 => array(名称=>"丁",单价=>10.00),
s005 => array(名称=>"戊",单价=>30.00),
s006 => array(名称=>"己",单价=>50.00),
);
?>
mail.htm
<frameset cols="*,*">
<frame src=list.php name=list>
<frame src=mycart.php name=mycart>
</frameset>list.php
商品列表
<form method=post target=mycart action=mycart.php>
<table>
<tr><th>名称</th><th>单价</th><th>数量</th></tr>
<?php
include "data.php";
foreach($data as $k=>$v)
echo "<tr><td>$v[名称]</td><td>$v[单价]</td><td><input type=text name='id[$k]' size=3 value=$数量></td></tr>";
?>
</table>
<input type=submit name=cart value="加入购物车">
</form>mycart.php // 显示和修改购物车
<?
session_start();
include "data.php";if(isset($_POST['id']))
foreach($_POST['id'] as $k=>$v) {
if($v > 0) {
$_SESSION['cart'][$k] = $data[$k];
$_SESSION['cart'][$k][数量] = $v;
}else if($_POST['cart'] == "刷新")
unset($_SESSION['cart'][$k]);
}
if(!is_array($_SESSION['cart']))
exit;
?>
<form method=post>
<table>
<tr><th>名称</th><th>单价</th><th>数量</th></tr>
<?php
foreach($_SESSION['cart'] as $k=>$v)
echo "<tr><td>$v[名称]</td><td>$v[单价]</td><td><input type=text name='id[$k]' size=3 value=$v[数量]></td></tr>";
?>
</table>
<input type=submit name=cart value="刷新">
</form>
($picname) $price*0.9 $price
胶水机 会员价:450.00¥ 市场价:500.00¥ [购买]
气动压花 会员价:270.00¥ 市场价:300.00¥ [购买]
高频机 会员价:1800.00¥ 市场价:2000.00¥ [购买]以上是我在主页面中显示出来的一个商品列表(其中商品是从数据库中调出来),当我点 [购买] 时,要怎么才能把相关的变量带入shopping.php中呢?又如何把每一个变量放入一个名为$new的数组中呢?
程序实现要求首先创建购物车的实例shopping 和商品的datamodel,
然后将所购商品的信息存入datamodel中,多个商品的datamodel存入shopping中,
shopping的临时保存采用session来完成,要求shopping对象中除了可以存入所购商品,还要求提供记算所购商品总金额(G币)的方法,
在结算时,程序将计算出的总金额与用户当前的余额进行比较,
只有用户余额大于所购物品的总金额时,才可以进行结算,否则给出错误提示。
结算成功后将所购商品信息存入“(G币)用户消费记录表中”