购物车
一、登陆页面
封装BDDA
1
|
<?php class DBDA{ public $host = "localhost" ; //服务器地址 public $uid = "root" ; //用户名 public $pwd = "123" ; //密码 public $dbname = "shopping" ; //数据库名称 /* 执行一条SQL语句的方法 @param sql 要执行的SQL语句 @param type SQL语句的类型,0代表查询 1代表增删改 @return 如果是查询语句返回二维数组,如果是增删改返回true或false */ public function query( $sql , $type =0){ $db = new MySQLi( $this ->host, $this ->uid, $this ->pwd, $this ->dbname); $result = $db ->query( $sql ); if ( $type ){ return $result ; } else { return $result ->fetch_all(); } } public function strquery( $sql , $type =0){ $db = new MySQLi( $this ->host, $this ->uid, $this ->pwd, $this ->dbname); $result = $db ->query( $sql ); if ( $type ){ return $result ; } else { $arr = $result ->fetch_all(); $str = "" ; foreach ( $arr as $v ){ $str .= implode( "^" , $v ). "|" ; } $str = substr ( $str ,0, strlen ( $str )-1); return $str ; } } //返回json数据的方法 public function jsonquery( $sql , $type =0){ $db = new MySQLi( $this ->host, $this ->uid, $this ->pwd, $this ->dbname); $result = $db ->query( $sql ); if ( $type ){ return $result ; } else { $arr = $result ->fetch_all(MYSQLI_ASSOC); //关联数组 return json_encode( $arr ); //转换json //json_decode()分解json } } } |
css样式表
*{ margin : 0px auto ; padding : 0px ; } #login{ background-color : #0CF ; width : 30% ; height : 200px ; margin-top : 50px ; border : 5px double #060 ; } #dl{ color : #00F ; background-color : #9FF ; height : 30px ; text-indent : 10px ; vertical-align : bottom ; line-height : 30px ; } #pwd{ background-color : #CFF ; height : 70px ; } #sb{ background-color : #060 ; width : 200px ; height : 30px ; color : #CFF ; margin-top : 3px ; } |
布局样式
|
<body> <form method= "post" action= "dengluchuli.php" > <div id= "login" > <div align= "left" id= "dl" >登录页面</div><br /> <div id= "yhm" align= "center" >用户名: <input type= "text" placeholder= "请输入用户名" name= "uid" /></div><br /> <div id= "pwd" align= "center" >密 码: <input type= "password" placeholder= "请输入密码" name= "pwd" /></div> <div align= "center" ><input type= "submit" value= "登录" id= "sb" /></div> </div> </form> </body> |
二、登录处理
<?php session_start(); require_once "../DBDA.class.php" ; $db = new DBDA(); $uid = $_POST [ "uid" ]; $pwd = $_POST [ "pwd" ]; $sql = "select password from login where username='{$uid}'" ; $mm = $db ->strquery( $sql ); if (! empty ( $pwd ) && $pwd == $mm ){ $_SESSION [ "uid" ] = $uid ; header( "location:main.php" ); } else { header( "location:denglu.php" ); } |
三、主页的css样式
|
*{ margin : 0px auto ; padding : 0px ; } #shang{ background-color : #0FF ; width : 100% ; height : 60px ; vertical-align : bottom ; line-height : 90px ; text-indent : 10px ; } #zuo{ float : left ; background-color : #999 ; width : 30% ; height : 500px ; } .caidan{ width : 80% ; height : 60px ; background-color : #69F ; margin-top : 20px ; text-align : center ; vertical-align : middle ; line-height : 60px ; font-weight : bold ; } #yous{ height : 40px ; width : 100% ; background-color : #FFF ; vertical-align : bottom ; line-height : 60px ; text-indent : 10px ; color : #009 ; font-size : 20px ; } #you{ background-color : #06F ; width : 70% ; height : 500px ; float : left ; } table{ color : #CF0 ; text-align : center ; } |
主页布局
|
< body > <? php session_start(); if(empty($_SESSION["uid"])){ header("location:denglu.php"); exit; } ?> < div > < div id="shang">< h2 >超牛逼购物网</ h2 ></ div > < div > < div id="zuo"> < div class="caidan">< a href="main.php">浏览商品</ a ></ div > < div class="caidan">< a href="zhanghu.php">查看账户</ a ></ div > < div class="caidan">< a href="gouwuche.php">查看购物车</ a ></ div > </ div > < div id="you"> < div id="yous"> <? php require_once"../DBDA.class.php"; $db = new DBDA(); if(!empty($_SESSION["gwc"])){ $arr = $_SESSION["gwc"]; $count = count($arr);//购物车中商品的数量 $sum = 0;//商品总价 foreach($arr as $v){ $sql = "select price from fruit where ids ='{$v[0]}'"; $danjia = $db->strquery($sql); $sum +=$danjia*$v[1]; } echo "购物车中总共有{$count}种商品,总价为:{$sum}元"; } ?> </ div > < table border="1" bordercolor="#CCFFFF" width="100%"> < tr bgcolor="#339999" height="40"> < td >水果代号</ td > < td >水果名称</ td > < td >水果价格</ td > < td >水果产地</ td > < td >货架</ td > < td >库存量</ td > < td >操作</ td > </ tr > <? php $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='tianjia.php?code={$v[0]}'>< input type='button' value='添加购物车'/></ a ></ td > </ tr >"; } ?> </ table > </ div > </ div > </ div > </ body > |
账号信息
|
<? php session_start(); if(empty($_SESSION["uid"])){ header("location:login.php"); exit; } ?> < body > < div > < div id="shang">< h2 >账户信息</ h2 ></ div > < div > < div id="zuo"> < div class="caidan">< a href="main.php">浏览商品</ a ></ div > < div class="caidan">< a href="zhanghu.php">查看账户</ a ></ div > < div class="caidan">< a href="gouwuche.php">查看购物车</ a ></ div > </ div > < div id="you"> < div id="yous">账户基本信息</ div > < table border="1" bordercolor="#CCFFFF" width="100%"> < tr bgcolor="#339999" height="40"> < td >用户名</ td > < td >姓名</ td > < td >账户余额</ td > </ tr > <? php $uid = $_SESSION["uid"]; require_once "../DBDA.class.php"; $db = new DBDA(); $sql = "select * from login where username = '{$uid}'"; $arr = $db->query($sql); foreach($arr as $v){ echo"< tr > < td >{$v[0]}</ td > < td >{$v[1]}</ td > < td >{$v[3]}</ td > </ tr >"; } ?> </ table > </ div > </ div > </ div > </ body > |
购物车
|
<! doctype html> < html > < head > < meta charset="utf-8"> < title >无标题文档</ title > < link href="main.css" rel="stylesheet" type="text/css"> < style type="text/css"> #st{
color:#FFF; font-size:20px; margin-left:450px; } </ style > </ head > <? php session_start(); if(empty($_SESSION["uid"])){ header("location:login.php"); exit; } ?> < body > < form action="dingdantijiao.php" method="post"> < div > < div id="shang">< h2 >购物车</ h2 ></ div > < div > < div id="zuo"> < div class="caidan">< a href="main.php">浏览商品</ a ></ div > < div class="caidan">< a href="zhanghu.php">查看账户</ a ></ div > < div class="caidan">< a href="gouwuche.php">查看购物车</ a ></ div > </ div > < div id="you"> < div id="yous">购物车有以下商品</ div > < table border="1" bordercolor="#CCFFFF" width="100%"> < tr bgcolor="#339999" height="40"> < td >商品名称</ td > < td >商品单价</ td > < td >购买数量</ td > < td >操作</ td > </ tr > <? php require_once "../DBDA.class.php"; $db = new DBDA(); $sql = "select * from ordertails"; $arr = $_SESSION["gwc"]; foreach($arr as $v){ $sql = "select name,price from fruit where ids='{$v[0]}'"; $name = $db->query($sql); echo "< tr > < td >{$name[0][0]}</ td > < td >{$name[0][1]}</ td > < td >{$v[1]}</ td > < td >< a href='del.php?code={$v[0]}'>< input type='button' value='删除' /></ a ></ td > </ tr >"; } ?> </ table > < br > < a href="dingdantijiao.php?ids={$v[0]}" rel="external nofollow" id="st">提交订单</ a > </ div > </ div > </ div > </ form > </ body > </ html > |
删除商品处理
|
<?php session_start(); $code = $_GET [ "code" ]; $arr = $_SESSION [ "gwc" ]; //var_dump($arr); //取索引2(数量) foreach ( $arr as $k => $v ) { if ( $v [0]== $code ) { if ( $v [1]>1){ //要删除的数据 $arr [ $k ][1]-=1; } else { //数量为1的情况下,移除该数组 unset( $arr [ $k ]); } } } $_SESSION [ "gwc" ] = $arr ; //记得扔到session里面 header( "location:gouwuche.php" ); //删除完跳转回去 |
提交订单
|
<?php session_start(); $ids = $_GET [ "ids" ]; //查看余额 $uid = $_SESSION [ "uid" ]; require_once "../DBDA.class.php" ; $db = new DBDA(); $sql = "select account from login where username='{$uid}'" ; $arr = $db ->query( $sql ,0); $aye = $arr [0][0]; //余额 //var_dump($aye); if (! empty ( $_SESSION [ "gwc" ])){ $arr = $_SESSION [ "gwc" ]; $sum = 0; //$numbers = count($arr); foreach ( $arr as $v ){ $sql = "select * from fruit where ids='{$v[0]}'" ; $price = $db ->query( $sql ,0); $dj = $price [0][2]; $sum = $sum + $dj * $v [1]; } } else { echo "您还未购买商品!" ; //header("shopping_list.php"); exit ; } //判断余额是否满足购买 if ( $aye >= $sum ){ //判断库存 foreach ( $arr as $v ){ $skc = "select name,numbers from fruit where ids='{$v[0]}'" ; $akc = $db ->query( $sql ,0); //var_dump($akc); $kc = $akc [0][4]; //库存 //var_dump($kc); if ( $kc < $v [1]){ echo "库存不足!" ; exit ; } } //提交订单 //账户扣除余额 $skye = "update login set account=account-'{$sum}' where username='{$uid}'" ; $zhye = $db ->query( $skye ,1); //扣除库存 foreach ( $arr as $v ){ $skckc = "update fruit set numbers=numbers-'{$v[1]}' where ids='{$v[0]}'" ; $sykc = $db ->query( $skckc ,1); } //添加订单 $ddh = date ( "Y-m-d H:i:s" ); $time = time(); $stjd = "insert into orders values('{$time}','{$uid}','{$ddh}')" ; $wcdh = $db ->query( $stjd ,1); //添加订单详情 foreach ( $arr as $v ){ $ddxq = "insert into orderdetails values('','{$ddh}','{$v[0]}','{$v[1]}')" ; $axq = $db ->query( $ddxq ,1); } } else { echo "余额不足,请充值!" ; exit ; } unset( $_SESSION [ "gwc" ]); header( "location:main.php" ); |