• 购物


    一、登陆页面

    封装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;
    			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;
    			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;
    			100%;
    			height:60px;
    			vertical-align:bottom;
    			line-height:90px;
    			text-indent:10px;
    			}
    		  #zuo{
    			float:left;
    			background-color:#999;
    			30%;
    			height:500px;
    			}
    		.caidan{
    			80%;
    			height:60px;
    			background-color:#69F;
    			margin-top:20px;
    			text-align:center;
    			vertical-align:middle;
    			line-height:60px;
    			font-weight:bold;
    			}
    		  #yous{
    			height:40px;
    			100%;
    			background-color:#FFF;
    			vertical-align:bottom;
    			line-height:60px;
    			text-indent:10px;
    			color:#009;
    			font-size:20px;
    			}	
    		  #you{
    			background-color:#06F;
    			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");
    

     

  • 相关阅读:
    Promise 解决回调地狱问题
    同步 异步 API 区别
    静态资源 读取方法
    路由
    HTTP 协议 get post 请求方式
    linux 查看日志
    putty完全使用手册--多窗口---git提交---连接数据库--自动日志显示
    strpos 返回0时 ,比较false 不能加单引号
    禁止使用test类的就是禁止使用本来的$this对象.可以调用父类的对象
    大D实例化model-->调用自定义类方法,大M调用原声model方法
  • 原文地址:https://www.cnblogs.com/navyouth/p/8399646.html
Copyright © 2020-2023  润新知