购物车及商品php代码_简单的php购物车代码

本文介绍一个php实现的购物车代码,功能实现完整,具有一定的参考价值

这里我们为你提供个简单的php购物车代码,从增加购物产品与发生购买了,在商城开发中,这个功能是少不了的

具体分析如下:

对购物车里商品的操作大体上有以下几个:添加商品,删除商品,以及提交订单;

方法本质是:把session存入array,对array进行增加、删除、修改操作,array中的每一组记录都是一个商品的信息(个数,价格等);

解决购物车的思路是用session记录一个二维数组。一维代表每一个商品,二维包含了商品的id,商品的数量...等可以自行增加,反正都是二维了,自己愿意带多少个商品属性就加上去。

购物车的操作流程:首先,登录到网站中浏览商品;然后,购买指定的商品,进入购物车页面中,在该页面可以实现更改商品数量、删除商品、清空购物车、继续购物等;最后,生成订单,提交订单等操作。

详细请看强大的注释;

首先登入;

登入页面

帐号:
密码:

图:

ce170c7d1620e49800eb1d7b2973c9e5.png

登入处理:

session_start();

include ("db.class.php");

$db = new db();

$zhang = $_POST["zhang"];

$mi = $_POST["mi"];

$sql = "select mi from yonghu WHERE zhang = '{$zhang}'";

$arr = $db->Query($sql);

if(!empty($zhang)&&!empty($mi)&&$mi = $arr){

$_SESSION["zhang"] = $zhang;

header("location:zym.php");

}

else

{

echo "登入失败";

}

?>

很简单的一个登入,没啥说的;

他登入完了以后直接进入主页面:

长腿璇购物商城

代号水果名称水果价格水果产地水果库存操作

session_start();

$_SESSION["zhang"] = "xiaoming";//不做登入的情况下,直接存sessiion

include ("db.class.php");

$db = new db();

$sql = "select * from sgbiao";

$arr = $db->Query($sql);

foreach ($arr as $v)

{

echo "

{$v[0]}{$v[1]}{$v[2]}{$v[3]}{$v[4]}

加入购物车

";

}

?>

//这里显示的是 购物车有多少产品,和产品的总价格

$ann=array();

if(!empty($_SESSION["gwc"]))

{

$ann=$_SESSION["gwc"];

}

$zhonglei = count($ann);

$aa=0;

foreach($ann as $k)

{

$k[0];//水果代号

$k[1];//水果数量

$sql1="select jiage from sgbiao where ids='{$k[0]}'";

$danjia=$db->Query($sql1);

foreach($danjia as $n)

{

$aa=$aa + $n[0]*$k[1];

}

}

echo"数量:{$zhonglei}

价格:{$aa}元";

?>

查看账户

查看购物车

来图:

8951f95a420dc4cdd5259a3b492a3d39.png

当我点击添加到购物车:

91b5a3c3a2657e521d8693cad3fba8f6.png

上面的数量与价格变了,说明已经加到了购物车里面;

来看一下是怎么处理的(强大的注释):

session_start();

//

$ids = $_GET["ids"];

if(empty($_SESSION["gwc"]))

{

//如果点击的购物车是空的(第一次添加)

//如果购物车里是空的,造二维数组,

$arr = array(

array($ids,1)

//一维数组,取ids,第一次点击增加一个

);

$_SESSION["gwc"]=$arr;

//扔到session里面

}

else

//这里不是第一次点击

{

//先判断购物车里是否已经有了该商品,用$ids

$arr = $_SESSION["gwc"];

//把购物车的状态取出来

$chuxian = false;

//定义一个变量;用来表示是否出现,默认是未出现

foreach ($arr as $v) {

//便利他

//如果这里面有这件商品

if ($v[0] == $ids) //如果取过来的$v[0](商品的代号)等于$ids那么就证明购物车中已经有了这一件商品

{

$chuxian = true;

//如果出现,直接把chuxian改成true

}

}

if($chuxian)

{

//购物车中有此商品

for($i=0;$i

{

if($arr[$i][0] == $ids)

{

//把点到的商品编号加1

$arr[$i][1] += 1;

}

}

$_SESSION["gwc"] = $arr;

}

else

{

//这里就只剩下:购物车里有东西,但是并没有这件商品

$asg = array($ids,1);

//设一个小数组

$arr[] = $asg;

$_SESSION["gwc"]=$arr;

}

}

header("location:zym.php")

?>

接下来做一下购物车的页面:

查看购物车

商品名称商品单价商品数量操作

session_start();

if(!empty($_SESSION["gwc"]))

{

$arr = array();

$arr = $_SESSION["gwc"];

//造数组

}

include ('db.class.php');

$db = new db();

foreach ($arr as $v)

{

global $db;

$sql = "select * from sgbiao WHERE ids = '{$v[0]}'";

$att = $db->query($sql);

foreach ($att as $a)

{

echo "

{$a[1]}{$a[2]}{$v[1]} 删除 ";

// 蔬果的名称

// 单价

// 取int数量

// 这个地方也可以加索引shanchu.php?sy={$v}

}

}

?>

提交订单

上图:

ab28524ddd21b2db8ea136c7167e1c28.png

可以看到大苹果的数量是4,若是我点删除,其条件便是存在大苹果,且数量大于一,点击删除使数量减一:

白葡萄的数量是1,若我点击删除,其条件是数量不大于一,使其移除数组;

说了这些快来看看删除页面吧:

session_start();

$ids = $_GET["ids"];

$arr = $_SESSION["gwc"];

//var_dump($arr);

//取索引2(数量)

foreach ($arr as $key=>$v)

{

if($v[0]==$ids)

{

if($v[1]>1){

//要删除的数据

$arr[$key][1]-=1;

}

else{

//数量为1的情况下,移除该数组

unset($arr[$key]);

}

}

}

$_SESSION["gwc"] = $arr;

//记得扔到session里面

header("location:ckgwc.php");

//删除完跳转回去

高能!!

提交订单页面,我只来一个处理页面吧,小伙伴若有需要自己填链接即可:

session_start();

include ("db.class.php");

$db = new db();

//判断用余额是否满足

$zhang = $_SESSION["zhang"];

//获取到用户名

$sye = "select zhanghu from yonghu WHERE zhang = '{$zhang}'";

$ye = $db->query($sye);

$ye[0][0];//这是余额

$ann=array();

if(!empty($_SESSION["gwc"]))

{

$ann=$_SESSION["gwc"];

}

$zhonglei = count($ann);

$aa=0;//总价格

foreach($ann as $k)

{

$k[0];//水果代号

$k[1];//水果数量

$sql1="select jiage from sgbiao where ids='{$k[0]}'";

$danjia=$db->Query($sql1);

foreach($danjia as $n)

{

$aa=$aa + $n[0]*$k[1];

}

}

//判断余额是否满足

if($ye[0][0]>=$aa)

{

//钱够,判断库存

foreach($ann as $v)

{

$skc = "select sgname,kucun from sgbiao WHERE ids='{$v[0]}'";

//水果代号$v[0]

$akc = $db->query($skc);

$akc[0][1];//库存

//比较是否满足库存

if($akc[0][1]

{

echo "{$akc[0][0]}库存不足";

//退出

exit;

}

}

//提交订单:

//i. 从用户账户中扣除本次购买的总价格

//ii. 从商品库存中扣除本次每种商品的购买数量

//iii. 向订单表和订单内容表中加入本次购买的商品信息

//扣除账户余额

$skcye = "update yonghu set zhanghu = zhanghu-{$aa} WHERE zhang = '{$zhang}'";

$db->query($skcye,0);

//扣除库存

foreach($ann as $v)

{

$skckc = "update sgbiao set kucun = kucun-{$v[1]} WHERE ids='{$v[0]}'";

//水果代号$v[0]

$db->query($skckc,0);

}

//添加订单信息

//取当前时间

$time = time();

//自动生成订单号

$ddh = date("YmdHis");

$sdd = "insert into dingdan VALUES ('{$ddh}','$zhang','$time')";

$db->query($sdd,0);

//添加订单内容

foreach ($ann as $v)

{

$sddxq = "insert into ddneirong VALUES ('','$ddh','{$v[0]}','{$v[1]}')";

$db->query($sddxq,0);

}

}

else

{

echo "钱不够";

exit;

}

如此一来,购物车大体上的功能都已实现;

来看看点击提交订单后的效果:

1.减少水果库存:

9c338b1c7f75df90078d9e6b30548ad5.png

2.添加订单:

d4a44d7aa0b15ebd5eb1479df03e8689.png

3.添加订单内容:

d8eebc6416a550427786f9607a4caa16.png

4.扣除购买人的账户余额:

fde7980b48befa37759e87e468b24197.png

以上便是购物车内容

以上就是简单的php购物车代码的详细内容,更多关于PHP购物车的资料请关注脚本之家其它相关文章!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单PHP购物车示例代码: 1. 添加商品购物车 ```php <?php session_start(); // 模拟商品信息,实际应从数据库中获取 $products = array( array("id"=>"1", "name"=>"商品A", "price"=>10), array("id"=>"2", "name"=>"商品B", "price"=>20), array("id"=>"3", "name"=>"商品C", "price"=>30) ); // 获取要添加到购物车商品ID $id = $_GET["id"]; // 查找对应的商品信息 foreach ($products as $product) { if ($product["id"] == $id) { // 将商品信息存储到Session中 $item = array( "id" => $product["id"], "name" => $product["name"], "price" => $product["price"], "quantity" => 1 ); if (isset($_SESSION["cart"])) { // 如果购物车已存在,直接添加商品 $_SESSION["cart"][$id] = $item; } else { // 如果购物车不存在,创建购物车并添加商品 $_SESSION["cart"] = array($id => $item); } break; } } // 跳转到购物车页面 header("location: cart.php"); ?> ``` 2. 显示购物车中的商品 ```php <?php session_start(); ?> <h1>购物车</h1> <table> <tr> <th>商品名称</th> <th>数量</th> <th>价格</th> <th>操作</th> </tr> <?php // 遍历购物车中的商品,并显示出来 if (isset($_SESSION["cart"])) { foreach ($_SESSION["cart"] as $item) { echo "<tr>"; echo "<td>" . $item["name"] . "</td>"; echo "<td>" . $item["quantity"] . "</td>"; echo "<td>" . $item["price"] . "</td>"; echo "<td><a href='remove.php?id=" . $item["id"] . "'>删除</a></td>"; echo "</tr>"; } } ?> <tr> <td colspan="2">总价:</td> <td colspan="2"> <?php // 计算购物车中所有商品的总价 $total = 0; if (isset($_SESSION["cart"])) { foreach ($_SESSION["cart"] as $item) { $total += $item["price"] * $item["quantity"]; } } echo $total; ?> </td> </tr> </table> ``` 3. 修改购物车商品数量或删除商品 ```php <?php session_start(); // 获取要修改或删除的商品ID $id = $_GET["id"]; // 判断用户是要修改数量还是删除商品 if ($_GET["action"] == "update") { // 更新商品数量 $quantity = $_POST["quantity"]; $_SESSION["cart"][$id]["quantity"] = $quantity; } else if ($_GET["action"] == "delete") { // 删除商品 unset($_SESSION["cart"][$id]); } // 跳转回购物车页面 header("location: cart.php"); ?> ``` 以上是一个简单PHP购物车示例代码,具体实现方式还可以根据需求进行调整和优化。需要注意的是,实际应用中还需要考虑安全性、性能、用户体验等方面的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值