Php 正在更新购物车的会话变量

Php 正在更新购物车的会话变量,php,session-variables,shopping-cart,Php,Session Variables,Shopping Cart,我是php新手(才玩了几个月),我正在为一个朋友构建一个非常简单的电子商务网站,我正在为这个网站构建一个同样简单的购物车 购物车的基本概念如下:目前,用户浏览产品页面(基于productID),为某个项目选择颜色(选择ProdOptID,它对每个项目都是唯一的),然后通过表单发布将该信息提交给$u会话['cart']。然后,这些信息被用来访问mysql数据库,以提取所有剩余的产品信息,这些信息将显示在迷你购物车中。在这一点上,它工作得很好。只有当我试图创建一个回顾/编辑页面时,我才会被绊倒。由于

我是php新手(才玩了几个月),我正在为一个朋友构建一个非常简单的电子商务网站,我正在为这个网站构建一个同样简单的购物车

购物车的基本概念如下:目前,用户浏览产品页面(基于productID),为某个项目选择颜色(选择ProdOptID,它对每个项目都是唯一的),然后通过表单发布将该信息提交给$u会话['cart']。然后,这些信息被用来访问mysql数据库,以提取所有剩余的产品信息,这些信息将显示在迷你购物车中。在这一点上,它工作得很好。只有当我试图创建一个回顾/编辑页面时,我才会被绊倒。由于某些原因,我只能更新最后一个。有人有什么想法或发现什么问题吗

查看/编辑页面的代码:

<div class="ReviewCheckout_Main">
<h1 class="ReviewCheckout_Title">Review Your Cart</h1>
<div class="ReviewCheckout_Form">
    <form action="/BeautifulUrns/includes/ReviewCheckout_Processing.php" method="post">
        <?php
            if (isset($_SESSION['Cart'])) {
                foreach ($_SESSION['Cart'] as $ID => $QTY){
                    $Query = "SELECT *
                        FROM ProductsOptions
                        LEFT OUTER JOIN Products
                        ON ProductsOptions.ProductID=Products.ProductID
                        WHERE ProdOptID = $ID";
                    $Result = mysql_query($Query, $Connection);
                    $Row = mysql_fetch_array($Result);

                    echo "<input type='text' name='Edit_Qty' value=" . $QTY . " />";
                    echo "<b>" . $Row['ProductName'] . "</b> ";
                    echo "<b> - " . $Row['POName'] . "</b> ";
                    echo "<input type='hidden' name='Edit_ID' value='{$Row['ProductID']}' />";
                    echo "<input type='hidden' name='Edit_ProdOptID' value='{$Row['ProdOptID']}' />";
                    echo "<br />";
                }
            }
        ?>

        <input type="submit" />
    </form>
    <a href="/BeautifulUrns/index.php">Return Home</a>
</div>    

查看您的购物车

似乎您的html输入名称都是完全相同的,因此最后一个名称优于前面的名称。您应该做的是在输入名称中添加一个id,例如

echo "<input type='hidden' name='Edit_ID_{$Row['ProductID']}' value='{$Row['ProductID']}' />"
echo“”
然后应该使用变量从每个输入字段检索数据。

似乎您的html输入名称都是完全相同的,因此最后一个名称优于前面的名称。您应该做的是在输入名称中添加一个id,例如

echo "<input type='hidden' name='Edit_ID_{$Row['ProductID']}' value='{$Row['ProductID']}' />"
echo“”
然后应该使用变量从每个输入字段检索数据。

您可以创建临时表来存储用户选择的项目,订单完成后,您可以将所有记录上载到询价表或订单表中

使用临时表,您可以轻松地更新或删除任何记录

表:临时订单

Temp_id:$_会话['Temp_id']=任意随机值

id  userid   product_id  quantity temp_id   date
1   1        1            2        123456    2011-06-27 
2   1        2            1        123456    2011-06-27
3   2        1            2        789456    2011-06-27 
4   2        2            3        789456    2011-06-27

您只需传递temp_id即可从临时表中获取用户选择的记录

您可以创建临时表来存储用户选择的项目,当订单最终确定时,您可以将所有记录上载到查询或订单表

使用临时表,您可以轻松地更新或删除任何记录

表:临时订单

Temp_id:$_会话['Temp_id']=任意随机值

id  userid   product_id  quantity temp_id   date
1   1        1            2        123456    2011-06-27 
2   1        2            1        123456    2011-06-27
3   2        1            2        789456    2011-06-27 
4   2        2            3        789456    2011-06-27
您只需传递temp_id即可从临时表中获取用户选择的记录