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

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

Sep 01, 2020 am 10:00 AM
phpショッピングカート

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<body>
<h1 id="登入页面">登入页面</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 id="长腿璇购物商城">长腿璇购物商城</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 id="查看购物车">查看购物车</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 サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
酸とベースデータベース:違いとそれぞれを使用するタイミング。酸とベースデータベース:違いとそれぞれを使用するタイミング。Mar 26, 2025 pm 04:19 PM

この記事では、酸とベースのデータベースモデルを比較し、その特性と適切なユースケースを詳述しています。酸は、財務およびeコマースアプリケーションに適したデータの整合性と一貫性を優先し、ベースは可用性に焦点を当て、

PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。Mar 26, 2025 pm 04:18 PM

この記事では、コードインジェクションのような脆弱性を防ぐために、PHPファイルのアップロードを確保することについて説明します。ファイルタイプの検証、セキュアストレージ、およびアプリケーションセキュリティを強化するエラー処理に焦点を当てています。

PHP入力検証:ベストプラクティス。PHP入力検証:ベストプラクティス。Mar 26, 2025 pm 04:17 PM

記事では、組み込み関数、ホワイトリストアプローチ、サーバー側の検証などの手法に焦点を当てたセキュリティを強化するためのPHP入力検証のベストプラクティスについて説明します。

PHP APIレート制限:実装戦略。PHP APIレート制限:実装戦略。Mar 26, 2025 pm 04:16 PM

この記事では、Token BucketやLeaky BucketなどのアルゴリズムやSymfony/Rate-Limiterなどのライブラリを使用するなど、PHPでAPIレート制限を実装するための戦略について説明します。また、監視、動的に調整されたレートの制限、および手をカバーします

PHPパスワードハッシュ:password_hashおよびpassword_verify。PHPパスワードハッシュ:password_hashおよびpassword_verify。Mar 26, 2025 pm 04:15 PM

この記事では、パスワードを保護するためにPHPでpassword_hashとpassword_verifyを使用することの利点について説明します。主な議論は、これらの関数が自動塩の生成、強力なハッシュアルゴリズム、およびSecurを通じてパスワード保護を強化するということです

OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。Mar 26, 2025 pm 04:13 PM

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

PHP XSS予防:XSSから保護する方法。PHP XSS予防:XSSから保護する方法。Mar 26, 2025 pm 04:12 PM

この記事では、PHPでのXSS攻撃を防ぐための戦略について説明し、入力の消毒、出力エンコード、セキュリティを向上させるライブラリとフレームワークの使用に焦点を当てています。

PHPインターフェイスvs抽象クラス:それぞれを使用する時期。PHPインターフェイスvs抽象クラス:それぞれを使用する時期。Mar 26, 2025 pm 04:11 PM

この記事では、PHPでのインターフェイスと抽象クラスの使用について説明し、それぞれをいつ使用するかに焦点を当てています。インターフェイスは、無関係なクラスや複数の継承に適した、実装なしで契約を定義します。抽象クラスは共通の機能を提供します

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい