zoukankan      html  css  js  c++  java
  • php购物车(练习)

    题目要求如下:

    实现一个简单的购物网站;

    需要实现的页面:

    Index:浏览商品页面,显示商品列表,用户可以点击“购买“。

    ViewCart:查看购物车页面,显示已购买的商品信息,可以点击“删除“已买的商品

    ViewAccount:查看个人账户余额

    Login:登录页面

    实现功能:

    显示商品列表

                                                                

    实现购买功能,购买的时候动态显示购物车中的商品数量和商品总价格

                                                                

    点击查看购物车后,显示已购买的商品。注意“购买数量”列,如果对一种商品点击购买多次,其“购买数量”不断增加。

                                                               

    删除购物车中已购买的商品。
    如果某商品的“购买数量”为1时,则点击“删除”时,直接从购物车中删除该商品;
    如果商品的“购买数量”大于1时,点击一次“删除”时,把其购买数量减1。直到该商品购买数量为1时,再点击删除时,删除该商品

                                 

    在查看完购物车后还可以点击“浏览商品”继续购买。并在上面显示已购买的商品数量和总价格。

                                                              

    “查看购物车“后,可以提交订单

                                                              

    1、 但在提交订单时,须完成以下功能:

    a) 检查用户是否已登录,未登录则转到Login页面

    b)检查用户账户余额是否能够满足本次够买

    c)检查库存数量是否满足本次够买

    d) 如果以上条件都满足则

    1. 从用户账户中扣除本次购买的总价格
    2. 从商品库存中扣除本次每种商品的购买数量
    3. 向订单表和订单内容表中加入本次购买的商品信息

    点击查看账户,可以查看该用户的账户余额。

    1.登录界面login.php

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="../jquery-1.11.2.min.js"></script>
    <title>无标题文档</title>
    </head>
    
    <body>
    <div>用户名:<input type="text" id="uid" /></div>
    <div>密码:<input type="text" id="pwd" /></div>
    <input type="button" value="登录" id="btn" />
    </body>
    <script type="text/javascript">
    $("#btn").click(function(){
        var uid = $("#uid").val();
        var pwd = $("#pwd").val();
        $.ajax({
                url:"loginchuli.php",
                data:{u:uid,p:pwd},
                type:"POST",
                dataType:"TEXT",
                success: function(data){
                    if(data.trim()=="OK")
                    {
                        window.location.href="main.php";
                    }
                    else
                    {
                        alert("用户名或密码错误");
                    }
                }
            })
        })
    </script>
    </html>

    2.登录处理页面loginchuli.php

    <?php
    session_start();
    
    include("../DBDA.class.php");
    $db = new DBDA();
    $uid = $_POST["u"];
    $pwd = $_POST["p"];
    $sql = "select password from login where username='{$uid}'";
    $mm = $db->StrQuery($sql);
    if($mm==$pwd && $pwd!="")
    {
        $UserName = $_POST["uid"];
        $_SESSION["uid"]=$uid;
        echo "OK";
    }
    else
    {
        echo "NO";
    }

    3.主页面main.php

    
    
    <?php
    session_start();
    include("../DBDA.class.php");
    $db = new DBDA();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title><br />
    <style type="text/css">
    .list{ width:100%; height:30px; margin-top:10px; text-align:center; line-height:30px; vertical-align:middle}
    </style>
    </head>
    <body>
    <div style="100%; height:100px; ">>
        <h1 style="float:left">大苹果商城</h1>
        <a style="float:right; margin-top:40px" href="zhuxiao.php">注销</a>
    </div>
    <br />
    <div style="100%; height:600px">
        <div id="left" style="20%; float:left">
            <a href="main.php"><div class="list">浏览商品</div></a>
            <a href="zhanghu.php"><div class="list">查看账户</div></a>
            <a href="gouwuche.php"><div class="list">查看购物车</div></a>
        </div>
        
        <div id="right" style="80%; float:left">
    <?php
        $agwc = array();
        if(!empty($_SESSION["gwc"]))
        {
            $agwc = $_SESSION["gwc"];
        }
        $zhonglei = count($agwc);
        $sum = 0;
        foreach($agwc as $v)
        {
            $sql = "select price from fruit where ids='{$v[0]}'";
            $danjia = $db->StrQuery($sql);
            $sum = $sum +$danjia*$v[1];
        }
        echo "<div>购物车中有:{$zhonglei}种商品,总价格为:{$sum}元.</div>";
        ?>
    
    
     <table width="100%" border="1" cellpadding="0" cellspacing="0">
            <tr>
                <td>代号</td>
                <td>水果名称</td>
                <td>水果价格</td>
                <td>源产地</td>
                <td>库存量</td>
                <td>操作</td>
            </tr>
    
    
    <?php     
            $sql = "select * from fruit";
            $attr = $db->Query($sql);
            
            foreach($attr 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><a href='goumai.php?code={$v[0]}'>购买</a></td></tr>";
            }
            ?>
     </table>
        </div>
    </div>
    
    </body>
    </html>

    4.购买处理页面goumai.php

    <?php
    session_start();
    $code = $_GET["code"];
    
    if(empty($_SESSION["gwc"]))
    {
        //第一次点击购买
        $attr = array(
            array($code,1)
        );
        $_SESSION["gwc"] = $attr;
    }
    else
    {
        //不是第一次点击购买
        $attr = $_SESSION["gwc"];
        $bs=0;
        foreach($attr as $k=>$v)
        {
            if($v[0]==$code)
            {
                $bs=1;
                $attr[$k][1] = $attr[$k][1]+1;
            }
        }
        //如果没有在数组里面出现
        if($bs==0)
        {
            $shuzu = array($code,1);
            $attr[] = $shuzu;
        }
        
        $_SESSION["gwc"]=$attr;
        
    }
    header("location:main.php");

    5.订单处理页面,计算选取水果的总价,和水果剩余量。dingdan.php

    <?php
    session_start();
    include("../DBDA.class.php");
    $db = new DBDA();
    $uid = $_SESSION["uid"];
    $attr = array();
    if(!empty($_SESSION["gwc"]))
    {
        $attr = $_SESSION["gwc"];
    }
    //看下两个条件是否都满足
    $bs = true;
    
    //判断余额是否满足
        //根据用户名找余额
        $syue = "select account from login where username='{$uid}'";
        $yue = $db->StrQuery($syue);
        
        //根据购物车数组取总金额
        $sum = 0;
        foreach($attr as $v)
        {
            $sql = "select price from fruit where ids='{$v[0]}'";
            $danjia = $db->StrQuery($sql);
            $sum = $sum +$danjia*$v[1];
        }
        if($yue<$sum)
        {
            $bs = false;
            echo "YEBUZU";
            exit;
        }
        
    //判断库存是否满足
    
    foreach($attr as $v)
    {
        $skucun = "select name,numbers from fruit where ids='{$v[0]}'";
        $akucun = $db->Query($skucun);
        if($akucun[0][1]<$v[1])
        {
            $bs = false;
            echo "{$akucun[0][0]}库存不足!";
            exit;
            
        }
    }
    
    //添加订单,减库存,减余额
    
    if($bs)
    {
        //减库存
        foreach($attr as $v)
        {
            $sql = "update fruit set numbers = numbers-{$v[1]} where ids='{$v[0]}'";
            $db->Query($sql,0);
        }
        
        //减余额
        $jianyue="update login set account=account-{$sum} where username='{$uid}'";
        $db->Query($jianyue,0);
        
        //添加订单
        $dingdanhao = $uid+date("YmdHis");
        $t = time();
        
        $sorder = "insert into orders values('{$dingdanhao}','{$uid}','{$t}')";
        $db->Query($sorder,0);
        
        foreach($attr as $v)
        {
            $sxq = "insert into orderdetails values('','{$dingdanhao}','{$v[0]}','{$v[1]}')";
            $db->Query($sxq,0);
        }
    }
    
    echo "OK";

    6.购物车页面

    
    
    <?php
    session_start();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title><br />
    <style type="text/css">
    .list{ width:100%; height:30px; margin-top:10px; text-align:center; line-height:30px; vertical-align:middle}
    </style>
    <script src="../../jquery-1.11.2.min.js"></script>
    </head>
    
    <body>
    
    
    
    <div style="100%; height:100px; ">>
        <h1 style="float:left">大苹果商城</h1>
        <a style="float:right; margin-top:40px" href="zhuxiao.php">注销</a>
    </div>
    <br />
    <div style="100%; height:600px">
        <div id="left" style="20%; float:left">
            <a href="main.php"><div class="list">浏览商品</div></a>
            <a href="zhanghu.php"><div class="list">查看账户</div></a>
            <a href="gouwuche.php"><div class="list">查看购物车</div></a>
        </div>
        
        <div id="right" style="80%; float:left">
            <table width="100%" border="1" cellpadding="0" cellspacing="0">
            <tr>
                <td>商品名称</td>
                <td>商品单价</td>
                <td>购买数量</td>
                <td>操作</td>
            </tr>
    <?php
            include("../DBDA.class.php");
            $db = new DBDA();
            $attr=array();
            if(!empty($_SESSION["gwc"]))
            {
                $attr = $_SESSION["gwc"];
            }
            
            foreach($attr as $k=>$v)
            {
                $sql = "select name,price from fruit where ids='{$v[0]}'";
                $ashuiguo = $db->Query($sql);
            
                echo "<tr><td>{$ashuiguo[0][0]}</td><td>{$ashuiguo[0][1]}</td><td>{$v[1]}</td><td><a href='shanchu.php?sy={$k}'>删除</a></td></tr>";
                
            }
            
            ?>
    
    
    </table>
            <div id="tj">提交订单</div><div id="ts"></div>
        </div>
    </div>
    
    <script type="text/javascript">
    $("#tj").click(function(){
            $.ajax({
                    url:"dingdan.php",
                    dataType:"TEXT",
                    success: function(data){
                            if(data.trim()=="OK")
                            {
                                alert("购买成功");
                            }
                            else if(data.trim()=="YEBUZU")
                            {
                                $("#ts").html("余额不足");
                                $("#ts").css("color","red");
                            }
                            else
                            {
                                $("#ts").html(data);
                                $("#ts").css("color","red");
                            }
                        }
                });
        })
    </script>
    </body>
    </html>

    7.购物车页面删除处理页面shanchu.php

    <?php
    session_start();
    
    $sy = $_GET["sy"];
    
    $attr = $_SESSION["gwc"];
    
    if($attr[$sy][1]>1)
    {
        $attr[$sy][1] = $attr[$sy][1]-1;
    }
    else
    {
        unset($attr[$sy]);
        $attr = array_values($attr);
    }
    $_SESSION["gwc"]=$attr;
    
    header("location:gouwuche.php");

    8.账户余额页面zhanghu.php

    
    
    <?php
    session_start();
    $uid = $_SESSION['uid'];
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title><br />
    <style type="text/css">
    .list{ width:100%; height:30px; margin-top:10px; text-align:center; line-height:30px; vertical-align:middle}
    </style>
    </head>
    <body>
    <div style="100%; height:100px; ">>
        <h1 style="float:left">大苹果商城</h1>
        <a style="float:right; margin-top:40px" href="zhuxiao.php">注销</a>
    </div>
    <br />
    <div style="100%; height:600px">
        <div id="left" style="20%; float:left">
            <a href="main.php"><div class="list">浏览商品</div></a>
            <a href="zhanghu.php"><div class="list">查看账户</div></a>
            <a href="gouwuche.php"><div class="list">查看购物车</div></a>
        </div>    
        <div id="right" style="80%; height:150px; float:left">
    <?php
            include("../DBDA.class.php");
            $db = new DBDA();
            $sql = "select Account from login where UserName='{$uid}'";
            $result = $db->strQuery($sql);
            
            echo ("您的账户中还剩余".$result);
     ?>
        </div>
    </div>
    
    </body>
    </html>

  • 相关阅读:
    rsync+inotifywait
    expect 批量执行命令
    用cloudmonkey批量创建虚拟机
    zabbix items 配置 修改zabbix表结构
    被攻击后排查的过程
    centos6.4安装 zabbix agent
    2015 Multi-University Training Contest 3 hdu 5323 Solve this interesting problem
    2015 Multi-University Training Contest 3 hdu 5326 Work
    2015 Multi-University Training Contest 3 hdu 5316 Magician
    2015 Multi-University Training Contest 1 hdu 5290 Bombing plan
  • 原文地址:https://www.cnblogs.com/axj1993/p/6518268.html
Copyright © 2011-2022 走看看