100分求教购物车技术

clflove 2003-10-20 10:03:54
我现在用PHP+MYSQL做一个网上购物项目,可是到了写购物程序这里就卡住了,不知道如何下手,在点击 订购 按钮时,产品列表中只能出现一个产品。是不是要这样:当我点击 订购 按钮,在显示出产品的同时还要把这个产品写入数据库里面呢?
希望做过购物项目的前辈们能给出一个设计流程或相关代码!!谢谢!!
只有100分的可用分了,提供好思路者,给分~~~~~帮UP也有分
...全文
135 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
hntd 2003-10-23
  • 打赏
  • 举报
回复
up
entice 2003-10-22
  • 打赏
  • 举报
回复
我原来做系统时,写的设计文档的一部分,思路就是这样。放入对象比数组要灵活一些。

用户可以通过该功能模用G币购买网站上提供的商品。
程序实现要求首先创建购物车的实例shopping 和商品的datamodel,
然后将所购商品的信息存入datamodel中,多个商品的datamodel存入shopping中,
shopping的临时保存采用session来完成,要求shopping对象中除了可以存入所购商品,还要求提供记算所购商品总金额(G币)的方法,
在结算时,程序将计算出的总金额与用户当前的余额进行比较,
只有用户余额大于所购物品的总金额时,才可以进行结算,否则给出错误提示。
结算成功后将所购商品信息存入“(G币)用户消费记录表中”
clflove 2003-10-22
  • 打赏
  • 举报
回复
怎么没有人进来啊,分不够可以加,只要能解决问题一切好办
clflove 2003-10-22
  • 打赏
  • 举报
回复
首先谢谢各位的指点。我还是有些不明白

产品名称 会员价 市场价
($picname) $price*0.9 $price
胶水机 会员价:450.00¥ 市场价:500.00¥ [购买]
气动压花 会员价:270.00¥ 市场价:300.00¥ [购买]
高频机 会员价:1800.00¥ 市场价:2000.00¥ [购买]

以上是我在主页面中显示出来的一个商品列表(其中商品是从数据库中调出来),当我点 [购买] 时,要怎么才能把相关的变量带入shopping.php中呢?又如何把每一个变量放入一个名为$new的数组中呢?
ashchen 2003-10-21
  • 打赏
  • 举报
回复
每一件商品都应改有一个编号的,用编号做索引,值做定购商品的数量 这种最简单
方工 2003-10-21
  • 打赏
  • 举报
回复
osCommerce - best known Open Source shopping cart
sports98 2003-10-20
  • 打赏
  • 举报
回复
http://www.gs160.net/~sports98/out/read.php?id=208

我以前写的购物车,你可以看看..
clflove 2003-10-20
  • 打赏
  • 举报
回复
因为以前没有写过,也没有好一点的例子来参考,做起来很棘手,所以还请各位帮忙,多加指教
skystar008 2003-10-20
  • 打赏
  • 举报
回复
php购物车其实跟其它的一样,都是用SESSION来保存商品的.楼主的存到数据库中的做法太不可取的,这样系统的花消会很大的,因为用户点了一个商品,他不一定就会购买,所以数据库的读写太频繁了.最核心的还是要用SESSION来保存,PHP的一个优势就是可以用ARRAY()还要用到的就是implode()这个函数.
clflove 2003-10-20
  • 打赏
  • 举报
回复
谢谢 xuzuning(唠叨) 兄
我先试一下,若不明白再请教
xuzuning 2003-10-20
  • 打赏
  • 举报
回复
index.php(每件商品下方均有一个'订购'按钮,点'订购')--->商品列表(shooping.php)
“订购”处理shooping.php:
<?php
session_start();
$_SESSION['商品'][] = array(商品编号=>xxx,所购数量=>xxx,...);
根据具体的传递方式决定变量的取值方式
。。。
?>
duwucna 2003-10-20
  • 打赏
  • 举报
回复
你们用jsp做过了没有?应该道理是一样的,希望做过的朋友,有时间来聊聊。
qq:66572030 msn:jon1982@hotmail.com
clflove 2003-10-20
  • 打赏
  • 举报
回复
谢谢 feel8(准备早起的鸟)
<?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是什么变量呢?
clflove 2003-10-20
  • 打赏
  • 举报
回复
谢谢xuzuning(唠叨)兄:
这个数组是不是在商品列表(shooping.php)页里面定义的呢?
我做的页面链接是这样的:index.php(每件商品下方均有一个'订购'按钮,点'订购')--->商品列表(shooping.php)
Array (
[0] => Array (
[id] =>
[num] =>
)
[1] => Array (
[id] =>
[num] =>
)
)
这中间的[id] and [num]是不是用session注册过的变量呢?能给一个实例吗?
feel8 2003-10-20
  • 打赏
  • 举报
回复
<?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']);
?>
xuzuning 2003-10-20
  • 打赏
  • 举报
回复
这是一个二维数组,形如
Array (
[0] => Array (
[id] =>
[num] =>
)
[1] => Array (
[id] =>
[num] =>
)
)
即索引数组的每一个元素是一个数组,表示一个商品。
至少需要保存“商品编号”和“欲购数量”。
clflove 2003-10-20
  • 打赏
  • 举报
回复
TO:xuzuning(唠叨)
按你的意思是:当用户点击 订购 时,把这个商品用session保存起来,确认购买才入库。这样的话那客户所选的商品均得放入一个session数组中,可这个数组如何定义呢?
xuzuning 2003-10-20
  • 打赏
  • 举报
回复
所购商品用session保存,不要直接入库。
只有当客户确认购买时再连同客户信息一同入库,这样至少在客户放弃购买时无须删除库中的无效信息。
预备购买的商品可用二维数组保存,无论是添加、修改、删除还是显示均很方便
使用session保存购物车的另一个好处是当客户选购商品时无须预先登录
xuzuning 2003-10-20
  • 打赏
  • 举报
回复
给你一个测试例,共4个文件
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>
clflove 2003-10-20
  • 打赏
  • 举报
回复
晕啊!!用session还是不知道怎么写,只会用数据库。但很多前辈都说用数据库不太可取,用session真是没有头绪啊,我想用session的话,也必须与数据库相结合,但是怎么结合起来呢?怎么才能做到反复的订购而不会让原有的商品丢失呢?学做购物车真的尝到头痛的滋味了
加载更多回复(7)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧