首先是几个简单的登录页面
- <body>
- <form action="chuli.php" method="post">
- <div style="margin-left: 500px; margin-top: 200px;
- height: 250px; width: 250px; border: 1px dashed black">
- <div style="margin-left: 100px; ">
- <h3>
- 登录
- </h3>
- </div>
- <div style="margin-top: 20px">
- 用户名:
- <input type="text" name="uid" />
- </div>
- <br/>
- <div>
- 密 码:
- <input type="password" name="pwd" />
- </div>
- <br/>
- <div style="margin-left: 180px">
- <input type="submit" value="登录" />
- </div>
- </div>
- </form>
- </body>
登录页面写好之后,需要进入处理页面,从数据库中调出用户名和密码:
- <?php
- session_start(); //开启session 必须要写到第一行
- header("Content-type:text/html;charset=utf-8");
- $uid=$_POST["uid"]; //从登录页面获取到用户名和密码
- $pwd=$_POST["pwd"];
- include("DADB.class.php");
- $db=new DADB();
- $sql="select password from login where username='{$uid}'";
- $arr=$db->Query($sql);
- if($arr[0][0]==$pwd && !empty($pwd)) //判断所填写的密码和取到的密码是一样的,而且密码不能为空
- {
- $_SESSION["uid"]=$uid;
- header("location:main.php");
- }
- else
- {
- echo"登录失败";
- }
这个显示的是登录页面
下面要进入主页面了,从数据库中把所有的水果信息调出来,然后我们再来实现加入购物车这一项功能
- <h2>
- 大苹果购物网
- </h2>
- <?php session_start(); include( "DADB.class.php"); $db=new DADB(); ?>
- <table border="1" width="100%" cellpadding="0" cellspacing="0">
- <tr>
- <td>
- 代号
- </td>
- <td>
- 水果名称
- </td>
- <td>
- 水果价格
- </td>
- <td>
- 原产地
- </td>
- <td>
- 货架
- </td>
- <td>
- 库存量
- </td>
- <td>
- </td>
- </tr>
- <?php $uid=$_SESSION[ "uid"]; $sql="select * from fruit" ; $arr=$db->
- Query($sql); foreach($arr as $v) { echo"
- <tr>
- <td>
- {$v[0]}
- </td>
- // 从数据库调出我们所需要的内容
- <td>
- {$v[1]}
- </td>
- <td>
- {$v[2]}
- </td>
- <td>
- {$v[3]}
- </td>
- <td>
- {$v[4]}
- </td>
- <td>
- {$v[5]}
- </td>
- <td>
- <a href='add.php?ids={$v[0]}'>
- 购买
- </a>
- </td>
- //这里的购买相当于添加购物车的功能
- </tr>
- "; } ?>
- <?php //这里显示的是 购物车有多少产品,和产品的总价格 $ann=array(); if(!empty($_SESSION[
- "gwc"])) { $ann=$_SESSION[ "gwc"]; } $zhonglei=c ount($ann); $sum=0; foreach($ann
- as $k) { $sql1="select price from fruit where ids='{$v[0]}'" ; $danjia=$db->
- Query($sql1); foreach($danjia as $n) { $sum=$sum + $n[0]*$k[1]; } } echo"购物车有
- <mark>
- {$zhonglei}
- </mark>
- 种商品,总价格为
- <mark>
- {$sum}
- </mark>
- 元"; ?>
- </table>
- <div>
- <a href="gouwuche.php">
- 查看购物车
- </a>
- <a href="main.php">
- 浏览商品
- </a>
- <a href="zhanghu.php">
- 查看账户
- </a>
- </div>
- </body>
主页面显示图
接下来是添加购物车页面
- <?php
- session_start();
- $ids = $_GET["ids"];
- if(empty($_SESSION["gwc"]))
- {
- //1.购物车是空的,第一次点击添加购物车
- $arr = array(
- array($ids,1)
- );
- $_SESSION["gwc"]=$arr;
- }
- else
- {
- //不是第一次点击
- //判断购物车中是否存在该商品
- $arr = $_SESSION["gwc"]; //先存一下
- $chuxian = false;
- foreach($arr as $v)
- {
- if($v[0]==$ids)
- {
- $chuxian = true;
- }
- }
- if($chuxian)
- {
- //3.如果购物车中有该商品
- for($i=0;$i<count($arr);$i++)
- {
- if($arr[$i][0]==$ids)
- {
- $arr[$i][1]+=1;
- }
- }
- $_SESSION["gwc"] = $arr;
- }
- else
- {
- //2.如果购物车中没有该商品
- $asg = array($ids,1);
- $arr[] = $asg;
- $_SESSION["gwc"] = $arr;
- }
- }
- header("location:gouwuche.php");
然后先是购物车主界面,如下
- <h2>
- 购物车中有以下商品:
- </h2>
- <table cellpadding="0" cellspacing="0" border="1" width="100%">
- <tr>
- <td>
- 商品名称
- </td>
- <td>
- 商品单价
- </td>
- <td>
- 购买数量
- </td>
- <td>
- </td>
- </tr>
- <?php session_start(); //$uid=$_SESSION[ "uid"]; $arr=array(); if(!empty($_SESSION[
- "gwc"])) { $arr=$_SESSION[ "gwc"]; } include( "DADB.class.php"); $db=new DADB();
- foreach($arr as $v) { global $db; $sql="select * from fruit where ids='{$v[0]}'"
- ; $att=$db ->
- Query($sql,1); foreach($att as $n) { echo"
- <tr>
- <td>
- {$n[1]}
- </td>
- <td>
- {$n[2]}
- </td>
- <td>
- {$v[1]}
- </td>
- <td>
- <a href='shanchu.php?sy={$k}'>
- 删除
- </a>
- </td>
- </tr>
- ";} } ?>
- </table>
- <div>
- <a href="gouwuche.php">
- 查看购物车
- </a>
- <a href="main.php">
- 浏览商品
- </a>
- <a href="zhanghu.php">
- 查看账户
- </a>
- </div>
- 14 15
- </body>
紧接着我们就到了删除页面,当购物车只有一件商品和大于一件商品时做处理
- <?php
- session_start();
- $sy = $_GET["sy"];
- //根据索引找到该数据
- $arr = $_SESSION["gwc"];
- $arr[$sy]; //要删除的数据
- //如果数量不为1,数量减1
- if($arr[$sy][1]>1)
- {
- $arr[$sy][1] = $arr[$sy][1]-1;
- }
- else //如果数量为1,移除
- {
- unset($arr[$sy]);
- }
- $_SESSION["gwc"] = $arr; //最后存一下购物车的内容
- header("location:gouwuche.php");
至于提交页面,我们要想到余额,库存等因素,所以比较繁琐,
不 i 怕,上代码。
- <?php
- session_start();
- header("Content-type:text/html;charset=utf-8"); //防止出现乱码
- $uid=$_SESSION["uid"];
- //先查一下账户余额
- include("DADB.class.php");
- $db=new DADB();
- $ysql="select account from login where username='{$uid}'";
- $yarr=$db->Query($ysql);
- $yarr[0][0];//总额
- //购物车的总价格,前面有写过
- $arr=array();
- if (!empty($_SESSION["gwc"]))
- {
- $arr=$_SESSION["gwc"];
- }
- $sum=0;
- foreach($arr as $v)
- {
- $v[1];//购物车中产品的数量
- $psql="select price from fruit WHERE ids='{$v[0]}'";
- $parr=$db->Query($psql);
- foreach($parr as $k)
- {
- $k[0];//产品的单价
- $sum+=$k[0]*$v[1];
- }
- }
- //判断余额是否满足购买
- if($yarr[0][0]>=$sum)
- {//余额满足,要判断库存
- foreach($arr as $v)
- {
- $ksql="select number from fruit where ids='{$v[0]}'";
- $karr=$db->Query($ksql);
- $karr[0][0];//这是库存
- if($karr[0][0]<$v[1]) //表示库存不足,这时要给顾客提示库存不足
- {
- echo"库存不足";
- exit;
- }
- }
- //判断之后需要提交订单了
- //账户扣除余额
- $kcsql="update login set account=account-{$sum} where username='{$uid}'";
- $db->Query($kcsql,0);//这里是修改语句,所以要加上0
- //扣除库存
- foreach($arr as $v)
- {
- $kcksql="update fruit set number=number-$v[1] where ids='{$v[0]}'";
- $db->Query($kcksql,0);
- }
- //所有的工作都做完了,这时我们就该提交订单了
- // 这里我在数据库中做了两张表,把提交的订单添加到表中就可以保存了
- //添加订单
- $ddh = date("YmdHis");
- $time = date("Y-m-d H:i:s");
- $sdd = "insert into orders values('{$ddh}','{$uid}','{$time}')";
- $db->Query($sdd,0);
- //添加订单详情
- foreach($arr as $v)
- {
- $sddxq = "insert into orderdetails values('','{$ddh}','{$v[0]}','{$v[1]}')";
- $db->Query($sddxq,0);
- }
- }
- else
- {
- echo "余额不足";
- exit;
- }
- ?>
实现功能是没问题的
来源: http://www.cnblogs.com/li1056822533/p/6523483.html