ホームページ > バックエンド開発 > PHPの問題 > PHPのショッピングカート機能の実装方法

PHPのショッピングカート機能の実装方法

藏色散人
リリース: 2023-03-05 14:52:01
オリジナル
4208 人が閲覧しました

PHP でショッピング カート機能を実装する方法: まず Web サイトにログインして商品を閲覧し、次に指定された商品を購入します。その後、ショッピング カート ページに入り、商品の数を変更したり削除したりできます。製品の購入、ショッピング カートのクリア、ショッピングの続行など、最後に注文の生成、注文の送信、その他の操作を行うことができます。

PHPのショッピングカート機能の実装方法

推奨: 「PHP ビデオ チュートリアル

PHP で実装されたショッピング カート コードとアイデアの紹介、機能は完全に実現されており、一定の基準値を持っています。

ショッピング商品の追加から購入までを行う簡単なphpショッピングカートコードを紹介しますモール開発では欠かせない機能です。

具体的な分析は次のとおりです:

1. ショッピング カート内の製品に対する操作には通常、次のものが含まれます:

製品の追加、製品を削除し、注文を送信します;

2. このメソッドの本質は次のとおりです:

セッションを配列に保存し、配列を追加、削除、および変更します配列内の各グループ レコードは製品に関するすべての情報 (番号、価格など);

3. ショッピング カートを解決するというアイデアは、セッションを使用して次のことを行うことです。 2次元配列を記録します。

1 つのディメンションは各製品を表し、2 つのディメンションには製品 ID、製品の数量などが含まれます。これは自分で追加できます。とにかく 2 つのディメンションです。製品属性はいくつでも追加できます。あなたが望むように。

4. ショッピングカートの操作手順:

まず、Webサイトにログインして商品を閲覧し、指定された商品を購入してショッピングカートページに入ります。このページでは、商品の数量の変更、商品の削除、ショッピング カートのクリア、ショッピングの続行などを行うことができ、最後に、注文の生成、注文の送信、その他の操作を行うことができます。

詳細については強力なコメントを参照してください;

最初にログインしてください;

<body>
<h1>登入页面</h1>
<form action="dengrucl.php" method="post">
    <p>帐号:<input type="text" name="zhang"/></p>
    <p>密码:<input type="text" name="mi"/></p>
    <input type="submit" value="登入"/>
</form>

</body>复制代码
ログイン後にコピー

PHPのショッピングカート機能の実装方法

ログイン処理:

<?php
session_start();
include ("db.class.php");$db = new db();$zhang = $_POST["zhang"];$mi = $_POST["mi"];$sql = "select mi from yonghu WHERE zhang = &#39;{$zhang}&#39;";$arr = $db->Query($sql);if(!empty($zhang)&&!empty($mi)&&$mi = $arr){    $_SESSION["zhang"] = $zhang;
    header("location:zym.php");
}else{    echo "登入失败";
}

?>复制代码
ログイン後にコピー

非常に簡単なログインで、何も言うことはありません;

ログイン後、メイン ページに直接移動します:

<body>
<h1>长腿璇购物商城</h1>
<table border="1" cellpadding="0" cellspacing="0" width="100%" >
    <tr>
        <td>代号</td>
        <td>水果名称</td>
        <td>水果价格</td>
        <td>水果产地</td>
        <td>水果库存</td>
        <td>操作</td>
    </tr>复制代码
ログイン後にコピー
 <?php
    session_start();$_SESSION["zhang"] = "xiaoming";//不做登入的情况下,直接存sessiion
    include ("db.class.php");    $db = new db();    $sql = "select * from sgbiao";    $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=&#39;zymcl.php?ids={$v[0]}&#39;>加入购物车</a>
</td>
    </tr>";
    }

    ?>
    <?php
    //这里显示的是 购物车有多少产品,和产品的总价格    $ann=array();    if(!empty($_SESSION["gwc"]))
    {        $ann=$_SESSION["gwc"];

    }    $zhonglei = count($ann);    $aa=0;
    foreach($ann as $k)
    {        $k[0];//水果代号        $k[1];//水果数量        $sql1="select jiage from sgbiao where ids=&#39;{$k[0]}&#39;";        $danjia=$db->Query($sql1);

        foreach($danjia as $n)
        {            $aa=$aa + $n[0]*$k[1];
        }


    }    echo"数量:{$zhonglei}<br/>
价格:<mark>{$aa}元";
    ?>
复制代码
复制代码
</table>

<a href="tijiao.php">查看账户</a>
<a href="ckgwc.php">查看购物车</a>

</body>复制代码
ログイン後にコピー

画像が表示されます:

PHPのショッピングカート機能の実装方法

「ショッピング カートに追加」をクリックすると:

PHPのショッピングカート機能の実装方法

上記の数量と価格が変更され、ショッピング カートに追加されたことが示されます。

処理方法を見てみましょう (強力なコメント):

<?php
session_start();
//$ids = $_GET["ids"];if(empty($_SESSION["gwc"]))
{
    //如果点击的购物车是空的(第一次添加)

    //如果购物车里是空的,造二维数组,    $arr = array(
        array($ids,1)
        //一维数组,取ids,第一次点击增加一个
    );    $_SESSION["gwc"]=$arr;
    //扔到session里面
}else
    //这里不是第一次点击
{
    //先判断购物车里是否已经有了该商品,用$ids
    $arr = $_SESSION["gwc"];
    //把购物车的状态取出来    $chuxian = false;
//定义一个变量;用来表示是否出现,默认是未出现
    foreach ($arr as $v) {
        //便利他
        //如果这里面有这件商品        if ($v[0] == $ids) //如果取过来的$v[0](商品的代号)等于$ids那么就证明购物车中已经有了这一件商品
        {            $chuxian = true;
            //如果出现,直接把chuxian改成true

        }
    }    if($chuxian)
    {
        //购物车中有此商品        for($i=0;$i<count($arr);$i++)
        {            if($arr[$i][0] == $ids)
            {
                //把点到的商品编号加1                $arr[$i][1] += 1;
            }
        }        $_SESSION["gwc"] = $arr;

    }        else
            {
                //这里就只剩下:购物车里有东西,但是并没有这件商品                $asg = array($ids,1);
                //设一个小数组                $arr[] = $asg;                $_SESSION["gwc"]=$arr;
            }

}
header("location:zym.php")


?>复制代码
ログイン後にコピー

次に、ショッピング カート ページを作成しましょう:

<body>
<h1>查看购物车</h1>
<table width="100%" border="1"cellspacing="0" cellpadding="0">
    <tr>
        <td>商品名称</td>
        <td>商品单价</td>
        <td>商品数量</td>
        <td>操作</td>
    </tr>复制代码
ログイン後にコピー
 <?php
    session_start();    if(!empty($_SESSION["gwc"]))
    {        $arr = array();        $arr = $_SESSION["gwc"];
        //造数组
    }
    include (&#39;db.class.php&#39;);    $db = new db();
    foreach ($arr as $v)
    {
        global $db;        $sql = "select * from sgbiao WHERE ids = &#39;{$v[0]}&#39;";        $att = $db->query($sql);
        foreach ($att as $a)
        {            echo "<tr>
        <td>{$a[1]}</td>
        <td>{$a[2]}</td>
        <td>{$v[1]}</td>
        <td><a href=&#39;shanchu.php?ids={$a[0]}&#39;>删除</a> </td>
    </tr> ";
//            蔬果的名称
//            单价
//            取int数量
//        这个地方也可以加索引shanchu.php?sy={$v}
        }
    }
    ?>
</table>

<a href="tijiao.php">提交订单</a>
</body>复制代码
ログイン後にコピー

上記写真:

PHPのショッピングカート機能の実装方法

大きなリンゴの数が 4 であることがわかります。削除をクリックすると、大きなリンゴがあり、その数が 1 より大きいことが条件となります。 [削除] をクリックして番号を 1 つ減らします:

White Grape 番号は 1 です。[削除] をクリックすると、その番号が 1 以下であることが条件となり、配列から削除できます。

##削除ページを覗いてみてください:

<?php
session_start();$ids = $_GET["ids"];$arr = $_SESSION["gwc"];
//var_dump($arr);
//取索引2(数量)
foreach ($arr as $key=>$v)
{    if($v[0]==$ids)
    {        if($v[1]>1){
            //要删除的数据           $arr[$key][1]-=1;
        }        else{
            //数量为1的情况下,移除该数组            unset($arr[$key]);
        }
    }

}$_SESSION["gwc"] = $arr;
//记得扔到session里面
header("location:ckgwc.php");
//删除完跳转回去复制代码
ログイン後にコピー

元気いっぱい! !

注文ページを送信します。処理ページは 1 つだけです。必要に応じて、自分でリンクを入力できます:

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

//判断用余额是否满足$zhang = $_SESSION["zhang"];
//获取到用户名$sye = "select zhanghu from yonghu WHERE zhang = &#39;{$zhang}&#39;";$ye = $db->query($sye);$ye[0][0];//这是余额$ann=array();if(!empty($_SESSION["gwc"]))
{    $ann=$_SESSION["gwc"];

}$zhonglei = count($ann);$aa=0;//总价格
foreach($ann as $k)
{    $k[0];//水果代号    $k[1];//水果数量    $sql1="select jiage from sgbiao where ids=&#39;{$k[0]}&#39;";    $danjia=$db->Query($sql1);

    foreach($danjia as $n)
    {        $aa=$aa + $n[0]*$k[1];
    }


}
//判断余额是否满足if($ye[0][0]>=$aa)
{
    //钱够,判断库存

    foreach($ann as $v)
    {        $skc = "select sgname,kucun from sgbiao WHERE ids=&#39;{$v[0]}&#39;";
        //水果代号$v[0]        $akc = $db->query($skc);        $akc[0][1];//库存
        //比较是否满足库存        if($akc[0][1]<$v[1])
        {            echo "{$akc[0][0]}库存不足";
            //退出            exit;
        }

    }
//提交订单:
//i.    从用户账户中扣除本次购买的总价格
//ii.    从商品库存中扣除本次每种商品的购买数量
//iii.    向订单表和订单内容表中加入本次购买的商品信息
    //扣除账户余额$skcye = "update yonghu set zhanghu = zhanghu-{$aa} WHERE zhang = &#39;{$zhang}&#39;";    $db->query($skcye,0);
    //扣除库存
    foreach($ann as $v)
    {        $skckc = "update sgbiao set kucun = kucun-{$v[1]} WHERE ids=&#39;{$v[0]}&#39;";
        //水果代号$v[0]        $db->query($skckc,0);
    }
    //添加订单信息
    //取当前时间    $time = time();
    //自动生成订单号    $ddh = date("YmdHis");    $sdd = "insert into dingdan VALUES (&#39;{$ddh}&#39;,&#39;$zhang&#39;,&#39;$time&#39;)";    $db->query($sdd,0);
    //添加订单内容
    foreach ($ann as $v)
    {        $sddxq = "insert into ddneirong VALUES (&#39;&#39;,&#39;$ddh&#39;,&#39;{$v[0]}&#39;,&#39;{$v[1]}&#39;)";        $db->query($sddxq,0);
    }


}else{    echo "钱不够";    exit;
}复制代码
ログイン後にコピー
このようにして、ショッピング カートの一般的な機能が実現されました。 ;

クリックして注文を送信した後の効果を見てみましょう:

1. 果物の在庫を削減します:

PHPのショッピングカート機能の実装方法#2. 注文の追加:

PHPのショッピングカート機能の実装方法3. 注文内容の追加:

PHPのショッピングカート機能の実装方法4. 購入者の金額を差し引く勘定残高: ### ##################

以上がPHPのショッピングカート機能の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート