php實現一個簡單的購物網站


實現一個簡單的購物網站

一、考試時間:8小時

二、開發工具:DW

三、數據庫:見附件

四、需要實現的頁面:

Index:瀏覽商品頁面,顯示商品列表,用戶可以點擊“購買“。

ViewCart:查看購物車頁面,顯示已購買的商品信息,可以點擊“刪除“已買的商品

ViewAccount:查看個人賬戶余額

Login:登錄頁面

 

建議使用的技術:Ajax,Session,數組。

 

五、實現功能:

1、 顯示商品列表

2、 實現購買功能,購買的時候動態顯示購物車中的商品數量商品總價格

3、 點擊查看購物車后,顯示已購買的商品。注意“購買數量”列,如果對一種商品點擊購買多次,其“購買數量”不斷增加。

4、 刪除購物車中已購買的商品。
如果某商品的“購買數量”為1時,則點擊“刪除”時,直接從購物車中刪除該商品;
如果商品的“購買數量”大於1時,點擊一次“刪除”時,把其購買數量減1。直到該商品購買數量為1時,再點擊刪除時,刪除該商品

5、 在查看完購物車后還可以點擊“瀏覽商品”繼續購買。並在上面顯示已購買的商品數量和總價格。

6、 “查看購物車“后,可以提交訂單

但在提交訂單時,須完成以下功能:

a) 檢查用戶是否已登錄,未登錄則轉到Login頁面

 

b) 檢查用戶賬戶余額是否能夠滿足本次夠買

c) 檢查庫存數量是否滿足本次夠買

d) 如果以上條件都滿足則

  1. 從用戶賬戶中扣除本次購買的總價格
  2. 從商品庫存中扣除本次每種商品的購買數量
  3. 向訂單表和訂單內容表中加入本次購買的商品信息

7、 點擊查看賬戶,可以查看該用戶的賬戶余額。

 

開始做,首先先做一個登錄頁面: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" />
<title>無標題文檔</title>
</head>

<body>
<h1>登錄頁面</h1>
<div>
<form action="logincl.php" method="post">
賬號:
<input type="text" name="uid" />
</div>
<div>
密碼:
<input type="password" name="pwd" />
</div>
<input type="submit" value="登錄" />
</form>
</body>
</html>

 

效果如圖:

在做一個登錄的處理頁面:logincl.php

<?php
session_start();
include("../fengzhuang/DBDA.class.php");
$db = new DBDA();

$uid =$_POST["uid"];
$pwd = $_POST["pwd"];

$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"登錄失敗";
}

這樣就可以和數據庫聯系了,這個是數據庫的登錄帳號和密碼,驗證帳號,密碼,然后跳到主頁:main.php

現在做主頁的頁面:main.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" />
<title>無標題文檔</title>
</head>

<body>
<h1>大蘋果購物網</h1>

<?php
session_start();
include("../fengzhuang/DBDA.class.php");
$db = new DBDA();
date_default_timezone_set("PRC");

//1.找出購物車中多少種商品和總價
$uid = $_SESSION["uid"];
$attr = array();
//如果購物車有商品,取出值
if(!empty($_SESSION["gwc"]))
{
    $attr = $_SESSION["gwc"];
}

$gs = count($attr);//$gs 商品數量
$sum = 0;//$sum 總價格,默認總價格為0
foreach($attr as $v)
{
    $v[0];//水果代號
    $v[1]; //水果數量
    $sql = "select price from fruit where ids ='{$v[0]}'";//查詢單價
    
    $ajg = $db->Query($sql);
    $dj = $ajg[0][0];//單價
    
    $sum += $dj * $v[1];//總價=單價*數量
}
echo"<div>購物車中有:{$gs}種商品,商品總價為:{$sum}元</div>";
?>



<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>代號</td>
        <td>水果名稱</td>
        <td>水果價格</td>
        <td>原產地</td>
        <td>貨架</td>
        <td>庫存量</td>
        <td>&nbsp;&nbsp;</td>
    </tr>
    <?php
    
    //2.從數據庫中找出數據
    
    $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>
        
        
        ";
        
    }
    
    
    
      
    ?>


</table>
<a href="gouwuche.php?ids={$v[0]}">查看購物車</a>


</body>
</html>

然后做主頁的處理頁面:add.php

<?php
session_start();
//找出點擊"購買"的ids
$ids = $_GET["ids"];


//1.第一次點擊添加購物車
//2.如果購物車中沒有該商品
//3.如果購物車中有該商品

//第一步,判斷購物車為空,則第一次點擊把商品添加到購物車
if(empty($_SESSION["gwc"]))
{
    $arr = array(array($ids,1));
    $_SESSION["gwc"] = $arr;
}
//如果不為空,則有2種判斷,1:該商品為空,則需添加進去,2:該商品有,則需數量上+1;
else
{
    //不是第一次點擊
    //判斷購物車中是否存在該商品
    $arr = $_SESSION["gwc"];
    
    $chuxian = false;
    foreach($arr as $v)
    {
        if($v[0]==$ids)
        {
            $chuxian =true;
        }
    }
    
    if($chuxian)
    {
        //如果購物車中有該商品
        for($i=0;$i<count($arr);$i++)
        {
            $arr[$i][1]+=1;
        }
    
    
        $_SESSION["gwc"] =$arr;
    }

    else
        {
        //如果購物車中沒有該商品
        $asg = array($ids,1);
        $arr[] =$asg;
        $_SESSION["gwc"] = $arr;
        }
}

header("location:main.php");    

登錄效果如圖:

然后再做查看購物車頁面,能看到購物車中的商品和單價和總價:gouwuche.php

首先購買3中商品:

然后代碼:

<!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>
</head>

<body>

<h1>大蘋果購物網</h1>

<h2>購物車中有以下商品:</h2>

<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>商品名稱</td>
        <td>商品單價</td>
        <td>購買數量</td>
        <td>&nbsp;&nbsp;</td>
    </tr>
    
<?php
        session_start();
        
        include("../fengzhuang/DBDA.class.php");
        $db = new DBDA();
        
        $uid = $_SESSION["uid"];
        $arr = array();
        if(!empty($_SESSION["gwc"]))
        {
            $arr = $_SESSION["gwc"];
        }
        
        foreach($arr as $k=>$v)
        {
            $sql = "select * from fruit where ids ='{$v[0]}' ";
            $attr =$db->Query($sql);
            
            echo"<tr>
                    <td>{$attr[0][1]}</td>
                    <td>{$attr[0][2]}</td>
                    <td>{$v[1]}</td>
                    <td><a href='shanchu.php?sy={$k}'>刪除</a></td>
                </tr>
            ";
        }
?>    
</table>
<div>
<a href="tijiao.php?ids='{$v[0]}'">提交訂單</a>
</div>


</body>
</html>

效果如圖所示:

然后做提交頁面 :tijiao.php

 

<?php


session_start();
include("../fengzhuang/DBDA.class.php");
$db = new DBDA();
 date_default_timezone_set('PRC') ;
$uid=$_SESSION["uid"];
$sye="select account from login where username ='{$uid}' ";
$aye=$db->Query($sye);
$aye[0][0];//余額

$attr =array();
if(!empty($_SESSION["gwc"]))
{
    $attr =$_SESSION["gwc"];
}

$sum = 0;//總價
foreach($attr as $v)
{
    $v[0];//水果代號
    $v[1];//數量
    $sql = "select price from fruit where ids='{$v[0]}'";
    $ajg = $db->Query($sql);
    $dj = $ajg[0][0];//單價
    $sum +=$dj*$v[1];
    
}


//判斷余額是否滿足購買
if($aye[0][0]>=$sum)
{
    //余額滿足,判斷庫存
    foreach($attr as $v)
    {
        $skc = "select name,number from fruit where ids='{$v[0]}'";
        $akc = $db->Query($skc);
        $akc[0][1];//庫存
        
        //判庫存是否滿足
        if($akc[0][1]<$v[1])
        {
            echo"{$akc[0][0]}庫存不足";
            exit;
        }
    
        
    }
    
    //提交訂單
    //賬戶扣除余額
    $skcye = "update login set account=account-{$sum} where username ='{$uid}'";
    $db->Query($skcye,0);
    
    
    //扣除庫存
    foreach($attr as $v)
    {
        $skckc = "update fruit set number = number-{$v[1]} where ids ='{$v[0]}'";
        $db->Query($skckc,0);
    }
    
    //添加訂單
    $ddh = date("YmdHis");
    $time = time();
    $sdd = "insert into orders values('{$ddh}','{$uid}','{$time}')";
    $db->Query($sdd,0);
    
    //添加訂單詳情
    foreach($attr as $v)
    {
        $sddxq ="insert into orderdetails values('','{$ddh}','{$v[0]}','$v[1]')";
        $db->Query($sddxq,0);
        
    }
}
else
{
    echo"余額不足";
    exit;
}
header("location:main.php");

然后看看數據庫有沒有改變:

李四的賬戶余額已經減少了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM