全局访问购物车会话值

时间:2016-07-15 10:52:59

标签: php

这是我的购物车代码,我将所有值保存到全局购物车会话数组中。 这是我的代码:

$cartOutput = "";
$cartTotal = "";
$pp_checkout_btn = '';
$product_id_array = '';
if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1) {
    $cartOutput = "<h2 align='center'>Your shopping cart is empty</h2>";
} else {
    // Start PayPal Checkout Button
    //$pp_checkout_btn .= '<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
    //<input type="hidden" name="cmd" value="_cart">
    //<input type="hidden" name="upload" value="1">
    //<input type="hidden" name="business" value="you@youremail.com">';
    // Start the For Each loop
    $i = 0; 
    foreach ($_SESSION["cart_array"] as $each_item) { 
        $item_id = $each_item['item_id'];
        $sql = mysql_query("SELECT * FROM products WHERE id='$item_id' LIMIT 1");
        while ($row = mysql_fetch_array($sql)) {
            $product_name = $row["product_name"];
            $price = $row["price"];
            $details = $row["details"];
        }
        $pricetotal = $price * $each_item['quantity'];
        $cartTotal = $pricetotal + $cartTotal;
        //setlocale(LC_MONETARY, "en_US");
        //$pricetotal = money_format("%10.2n", $pricetotal);
        // Dynamic Checkout Btn Assembly
        $x = $i + 1;
        $pp_checkout_btn .= '<input type="hidden" name="item_name_' . $x . '" value="' . $product_name . '">
        <input type="hidden" name="amount_' . $x . '" value="' . $price . '">
        <input type="hidden" name="quantity_' . $x . '" value="' . $each_item['quantity'] . '">  ';
        // Create the product array variable
        $product_id_array .= "$item_id-"."$product_name".$each_item['quantity'].","; 


        // Dynamic table row assembly
        $cartOutput .= "<tr>";
        $cartOutput .= '<td><a href="product.php?id=' . $item_id . '">' . $product_name . '</a><br /><img src="inventory_images/' . $item_id . '.jpg" alt="' . $product_name. '" width="40" height="52" border="1" /></td>';
        $cartOutput .= '<td>' . $details . '</td>';
        $cartOutput .= '<td>Rs ' . $price . '</td>';
        $cartOutput .= '<td><form action="cart.php" method="post">
        <input name="quantity" onkeypress="return onlyNos(event,this);" type="text" value="' . $each_item['quantity'] . '" size="1" maxlength="2" />
        <input name="adjustBtn' . $item_id . '" type="submit" value="change" />
        <input name="item_to_adjust" type="hidden" value="' . $item_id . '" />
        </form></td>';
        //$cartOutput .= '<td>' . $each_item['quantity'] . '</td>';
        $cartOutput .= '<td>' . $pricetotal . '</td>';
        $cartOutput .= '<td><form action="cart.php" method="post"><input name="deleteBtn' . $item_id . '" type="submit" value="X" /><input name="index_to_remove" type="hidden" value="' . $i . '" /></form></td> ';
        $cartOutput .= '</tr>';
        $i++; 
    } 

现在这是我用于在购物车页面上呈现它的购物车数组。 现在我如何从购物车数组中获取值。

1 个答案:

答案 0 :(得分:0)

我不知道您是否创建了有关订单的内容,但通常,您首先需要创建数据库表和关系。例如,您将拥有表顺序,并且还将具有表order_item。它们之间的关系是一对多的,这意味着订单可以包含许多商品,而一个商品只能包含一个订单。

除此之外,你的系统中有产品,所以我猜你已经创建了产品表。您还可以在product和order_item之间建立关系。关系再次是一对多,一个项目可以有一个产品,产品可以有很多项目。

所以,db应该是这样的:

order table:
id
value
customer_email
...

order_item table:
id
order_id
product_id
...

一个非常好的做法是当您创建order_item表时,将产品中的所有数据放入order_item表中,如名称,价格,税,....

这很重要,因为您需要将这些数据设为历史数据,否则您可能会失去价格。所以你的order_item表可能看起来是:

order_item table:
id
order_id
product_id
name
price
...

我们假设您在order_item中只有product_id作为外键,因为您可能会想到&#34;好的,当我需要检查一个订单中的商品并需要查看价格时,我可以得到它通过外键并从产品表中抓取&#34;。但是如果你改变产品表中的价格会发生什么?那么你可能会因订单创建时的永久价格而失败。

这将是开始,之后你可以很容易地从sql查询获取订单和order_item表中的所有订单信息