-1

ショッピングカートの作り方を学び始めたところです。

この例に出くわしました:

<?php

   echo "Shopping cart:\n";

      $items = count($_SESSION['cart']);    
     {
         $total = 0;
    echo "<table width=\"100%\" cellpadding=\"1\" border=\"1\">\n";
            echo "<tr><td>Item Name</td><td>Quantity</td><td>Total</td></tr>\n";
            foreach($_SESSION['cart'] as $itemid => $quantity)
            {
                $query = "SELECT description, price FROM items WHERE itemid = $itemid";
                $result = mysql_query($query);
                $row = mysql_fetch_array($result, MYSQL_ASSOC);
                $name = $row['name'];
                $price = $row['price'];

                $subtotal = $price * $quantity;
                $total += $subtotal;

    printf("<tr><td>%s</td><td>%s</td><td>$%.2f</td></tr>\n", $name, $quantity, $subtotal);
            }
            printf("<tr><td colspan=\"2\">Total</td><td>$%.2f</td></tr>\n", $total);
            echo "</table>\n";
       }

?> 

コードは機能し、「TOTALまたは$ total」の部分を除いて、ほとんどのコードを理解しています。

* $ subtotal = $ price * $ amount; $ total + = $ subtotal; *

私が言ったように、それは機能します。たとえば、2つのアイテムをカートに入れると、5個(数量)の岩がそれぞれ5ドル、2個の小石がそれぞれ10ドルになると、それぞれのテーブルにSUBTOTALSが表示されます。ウィジェットの行は25ドル、20ドルです。ガジェット用。私はそれを仮定しています

* $ SUBTOTAL = $ price * $ amount * -----これには責任がありますか?

私が得られないのは、それがTOTAL(正しい-$ 45)をどのように考え出すかです。

コードのどの部分が個々の小計(つまり、25ドルと20ドル)を合計しますか?

$ total + = $ subtotalはどのように機能しますか?

コードがどのように機能/処理されるかを理解したいのですが、それが機能するという理由だけで理解するのではありません。

前もって感謝します。

4

2 に答える 2

1
$total += $subtotal

略記です:

$total = $total + $subtotal;

したがって、それをコードに適用するには:

// Start the total at 0
$total = 0;

// For every item in the cart
foreach($_SESSION['cart'] as $itemid => $quantity)
{
    // Get the item's price from the database
    $price = $row['price'];

    // The subtotal is the cost of each item multiplied by how many you're ordering
    $subtotal = $price * $quantity;

    // Add this subtotal to the running total
    $total += $subtotal;
}
于 2012-06-15T00:32:59.683 に答える
0

+=演算子は、式の左側の値を取得し、右側にあるものをすべて追加します。このように考えてください:

$total = $total + $subtotal;

すべてのforeach()アイテムをループし、各反復で、製品の単価に数量を掛けて、その製品のtotal.priceを計算します。この数量は、に一時的に保存され$subtotalます。

于 2012-06-15T00:35:36.950 に答える