session實現購物車功能


購物車功能是生活中經常使用的,這里以fruit表為例,做一個簡單的購物車:

首先要將fruit表顯示出來:

<?php
session_start();?>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>代號</td>
        <td>名稱</td>
        <td>單價</td>
        <td>產地</td>
        <td>庫存</td>
        <td>操作</td>
    </tr>
    <?php
    require "DBDA.class.php";
    $db = new DBDA();
    $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><a href='shengchan.php?ids={$v[0]}'>加入購物車</a></td>
    </tr>";    
    }
</table>

然后是重點,在處理頁面,要有一個購物車的邏輯思維:

如果是第一次添加購物車,造一個二維數組存到SESSION里面
如果不是第一次添加,有兩種情況
1.如果該商品購物車里面不存在,造一個一維數組扔到二維里面
2.如果該商品在購物車存在,讓數量加1

<?php
session_start();
$ids = $_GET["ids"];
//array('k001',2)
//array(array('k001',2),array('k002',1))

//如果是第一次添加購物車,造一個二維數組存到SESSION里面
//如果不是第一次添加,有兩種情況
//1.如果該商品購物車里面不存在,造一個一維數組扔到二維里面
//2.如果該商品在購物車存在,讓數量加1
if(empty($_SESSION["gwc"]))
{
    $arr=array(array($ids,1));
    $_SESSION["gwc"]=$arr;    
}
else
{
    $arr = $_SESSION["gwc"];
    $bs=false;//是否出現
    foreach($arr as $v)
    {
        if($v[0]==$ids)
        {
            $bs = true;
        }
    }
    if($bs)
    {
        //2.如果該商品在購物車存在,讓數量加1
        foreach($arr as $k=>$v)
        {
            if($v[0] == $ids)
            {
                $arr[$k][1]++;
            }
        }
        $_SESSION["gwc"] = $arr;
    }
    else
    {
        //1.如果該商品購物車里面不存在,造一個一維數組扔到二維里面
        $attr = array($ids,1);
        $arr[] = $attr;
        $_SESSION["gwc"] = $arr;
    }
}
header("location:list.php");

然后再創建購物車查看頁面:

 

<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>代號</td>
        <td>名稱</td>
        <td>單價</td>
        <td>數量</td>
        <td>操作</td>
    </tr>
    
    <?php
    session_start();
    $arr = $_SESSION["gwc"];
    require "DBDA.class.php";
    $db= new DBDA();
    $sum= 0;
    foreach($arr as $k=>$v)
    {
        $v[0]; $v[1];
        $sql = "select * from fruit where ids='{$v[0]}'";
        $af = $db->query($sql);
        
        echo "<tr>
        <td>{$v[0]}</td>
        <td>{$af[0][1]}</td>
        <td>{$af[0][2]}</td>
        <td>{$v[1]}</td>
        <td><a href='shanchu.php?sy={$k}'>刪除</a></td>
    </tr>";
        $sum = $sum +$v[1]*$af[0][2];//輸出總價格    
    }
    
    ?>
</table>
<div>
<?php
$gs = count($arr);//購物車里面有幾個商品

echo "該購物車里面總共有{$gs}種商品,商品的總價為:{$sum}元";

?>

 最后是刪除商品頁面:

<?php
session_start();
$sy = $_GET["sy"];

//如果該水果數量大於1,減1
//如果該水果數量等於1 移除
$arr = $_SESSION["gwc"];

if($arr[$sy][1]>1)
{
    //如果該水果數量大於1,減1
    $arr[$sy][1]--;
}
else
{
    unset($arr[$sy]);
    $arr = array_values($arr);
}

$_SESSION["gwc"] = $arr;
header("location:kan.php");

 


免責聲明!

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



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