购物车产品内容表:购物车号字符,产品编号字符,时间日期,备注文本(产品要求,发货包装要求等)产品取消是否1,订单产生是否2
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、小程序制作、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了巴马免费建站欢迎大家使用!
订单信息表:订单编号(唯一),客户编号,购物车编号,订单状态1,确认(已付款),2备货中(*发货),4完成订单
客户信息表:客户编号(唯一),姓名,联系电话,发货地址,生日等
购物车中至少包含 以下信息:
商品ID,商品名称,商品价格,购买数量,(其他如果有)
把以上信息组成一个数组,
每购买一件商品,就生成一个这样的数组,多个数组组成一个大数组,
然后将这个二维数组转成JSON格式存入COOKIE即可。在购物车页面加载时,读取COOKIE内的这个JSON,然后再转成数组输出到页面即可。
PHP数组转JSON:json_encode
JSON转数组:json_decode
我也要弄一个这种购物车,
我去写个,贴出来,【嘿嘿,今天上午新写的】。
我懒得新建数据库,用的是我的数据库。
你按照我的改一下就能用了
本人水平有限,高手请指正。
你,大,爷的,虽然不咋地,保证能用
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
经过调试,
//$my-add_cart(45,3,"茶几系列");//新增购物
//$my-updata_cart(13,13,8); //更新购物
//$my-del_cart(12,5,'Guest'); //删除一种购物
//$my-empty_cart('Guest'); //清空购物车
$ok=$my-get_cart('Guest'); //返回购物车
这些都可用
-------------------------------------------------------------------
?php
class Cart
{
public $totalCost=0; //商品总金额
function cart($host,$usr,$pwd,$db)
{
mysql_connect($host,$usr,$pwd) or die(mysql_error);
mysql_select_db($db) or die(mysql_error);
mysql_query("SET Names GBk");
//只要有人访问,就自动清除一天前所有没付款的订单;
$sql="delete FROM shopcart WHERE TO_DAYS( NOW( )) - TO_DAYS( ptime ) =1 and payment=0";
mysql_query($sql);
}
// 弹出提示
function alter($Str,$Url)
{
echo "Script language='JavaScript' alert('".$Str."');/Script";
echo "meta http-equiv=refresh content=0;URL=".$Url."";
}
//增加购物;三个参数:pid:产品ID,ptl:产品数量,pcid:产品类别
//查询数据库,是否存在此人在本日内订过本产品
//如果订过,那么数量累加,否则插入一个数据库行
function add_cart($pid,$ptl=1,$pcid)
{
if($ptl=100 || $ptl=0)
{
$this-alter("最多买99件,最少1件","index.php");
die();
}
if(!$_SESSION['usr']) { $usr='Guest';}
else { $usr=$_SESSION['usr'];}
$sql="select * from shopcart where pid='".$pid."' and usr='".$usr."' and pcid='".$pcid."'";
$ex=mysql_query($sql);
$ex1=mysql_fetch_array($ex);
if(!$ex1)
{
$sql="select * from product where ID='".$pid."' and class1='".$pcid."'";
$ok=mysql_query($sql);
$rs=mysql_fetch_array($ok);
if($rs)
{
$totalCost= $rs['Price'] * $ptl;
$sql="insert into shopcart(usr,pid,pname,ptl,price,pcid,psum,payment) Values(";
$sql.="'".$usr."',";
$sql.="'".$rs['ID']."',";
$sql.="'".$rs['Name']."',";
$sql.="'".$ptl."',";
$sql.="'".$rs['Price']."',";
$sql.="'".$rs['Class1']."',";
$sql.="'".$totalCost."',";
$sql.="'0')";
mysql_query($sql) or die(mysql_error());
if($ok) { $this-alter("购物成功","index.php"); }
else { $this-alter("购物失败","index.php"); }
}
else
{
$this-alter("不存在的商品,或者参数错误","index.php");
die();
}
}
else
{
$sql="update shopcart set ptl= ptl+1,psum = psum+price where ID='".$ex1['ID']."'";
mysql_query($sql);
$this-alter("更新数量成功","index.php");
}
}
//更新购物车的单个产品的数量;
function updata_cart($cid,$ptl,$pid)
{
if($ptl=100||$ptl=0)
{
$this-alter('产品数量不对!','index.php');
die();
}
$sql="select * from shopcart where ID='".$cid."' and pid='".$pid."'";
$ok=mysql_query($sql);
if(!ok) { alter("参数发生错误","index.php");}
else
{
$sql="update shopcart set ptl='".$ptl."',psum=price * '".$ptl."' where ID='".$cid."' and pid='".$pid."'";
$ok=mysql_query($sql);
if(!ok) { $this-alter("更新失败","index.php");}
else { $this-alter("更新成功","index.php");}
}
}
function del_cart($cid,$pid,$usr)
{
$sql="delete from shopcart where usr='".$usr."' and ID='".$cid."' and pid='".$pid."'";
$ok=mysql_query($sql);
if(!$ok) {$this-alter("删除失败","index.php");}
else {$this-alter("删除成功","index.php");}
}
function empty_cart($usr)
{
$sql="delete from shopcart where usr='".$usr."'";
mysql_query($sql) or die(mysql_error);
}
function get_cart($usr)
{
$sql="select * from shopcart where usr='".$usr."'";
$ok=mysql_query($sql);
return $ok;
}
}
$my = new Cart("localhost","root","root","mybbs");
//$my-add_cart(45,3,"茶几系列");
//$my-updata_cart(13,13,8);
//$my-del_cart(12,5,'Guest');
//$my-empty_cart('Guest');
$ok=$my-get_cart('Admin');
echo "usr pid pname ptl price pcid psum payment ptime brhrbr";
while($rs=mysql_fetch_array($ok))
{
echo $rs[1]."-".$rs[2]."-".$rs[3]."-".$rs[4]."-".$rs[5]."-".$rs[6]."-".$rs[7]."-".$rs[8]."-".$rs[9]."br";
}
?
、、、、、、、、、、、、、、、、、SQL、、、、、、、、、、、、、、
CREATE TABLE IF NOT EXISTS `shopcart` (
`ID` int(10) NOT NULL auto_increment,
`usr` varchar(50) NOT NULL,
`pid` int(5) NOT NULL,
`pname` varchar(100) NOT NULL,
`ptl` int(3) NOT NULL,
`price` decimal(50,2) NOT NULL default '0.00',
`pcid` varchar(100) NOT NULL,
`psum` decimal(50,2) NOT NULL default '0.00',
`payment` tinyint(1) NOT NULL,
`ptime` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`)
)
product 里面用的ID CLASS1是
`ID` int(6) NOT NULL auto_increment,
`Class1` varchar(20) NOT NULL,
`Price` int(6) NOT NULL,
第一:做购物车,一般来说是不存入数据库这样数据量比较大并且查询效率慢,所以一般购物车都用Session,或Cookie来实现,建一个购物车实体类,大概有这些字段,商品ID,用户ID,数量...等这可以根据自己需要来设置,然后比如购买一件商品添加到购物车就创建一个hashtable来保存购物车里的信息,然后把hashtable保存到Session或Cookie,大致就这样。
第二:订单,你说的那个订单一般都有一个订单表的。首先要弄清楚流程,肯定是用户先将产品加入购物车,然后再提交订单的。为什么会订单下了以后还关购物车的事呢?购物车只是临时保存用户购买产品的地方。就像超市里去卖东西首先推一个车,然后去选购你要的产品,最后付款。对应这车只是你保存东西的一个工具,当你购买完毕后就不会和他有什么联系了。如果你后面需要退货你也只管那张单据(对应产品订单)而不会和你购物车车上联系。
不知道我这样讲你是否明白!