购物

一、登陆页面

封装BDDA

<?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{
		background-color:#390;
		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");

 

 

posted @ 2018-02-01 16:17  navyyouth  阅读(164)  评论(0编辑  收藏  举报