0

クエリで返される結果の量を反復しようとすると問題が発生しますCart。次のフィールドで呼び出されるデータベース テーブルがあります。

アイテムコード //Unique Code of Item

アイテムの説明 //Description / Name ofItem

アイテム単価 //Unit Price for Item

アイテムカテゴリ //Category of Item e.g. Books, CD, DVD etc...

//Quantity of Item(s) in cart

my に表示されているすべてのレコードをループしてdisplay.php(テーブル内のすべてのデータを出力するだけです) 、をすべてのアイテムでCart乗算し、変数に格納して、 に含まれるすべての合計価格を格納します。ItemUnitPriceQuantitydisplay.php

私はこのようなものが欲しい:

LOOP
$Total= $ItemUnitPrice * $Quantity;
END LOOP

私は MySQL を使用していますが、各アイテムの合計を取得するためにループする方法がよくわかりません。

一言で言えば、データベーステーブル内のすべてのアイテムの合計 ( ItemUnitPrice* ) を見つけて、変数に格納したいと考えています。Quantity

編集:

$query="SELECT * FROM Cart";
$result=mysql_query($query);
$num=mysql_num_rows($result);


$cartTotalPrice = 0;

while($row = mysql_fetch_assoc($result))
{
$cartTotalPrice += ($row['itemUnitPrice']*$row['Quantity']);

}
$_SESSION['totalCost'] = $cartTotalPrice;
mysql_close();
session_start();
echo "<b><center> Islamic Book Store - Your Shopping Cart </b><br/><br/>";

$i=0;

echo "<table border=1><tr><th>Item Code</th><th>Item Desc,</th>";
echo "<th> Item Unit Price</th><th>Item Category</th><th>Quantity</th><th>Image</th>    <th>Update Quantity</th></tr>";

while ($i < $num)

{

$ItemCode = mysql_result($result,$i,"ItemCode");
$ItemDesc = mysql_result($result,$i,"ItemDesc");
$ItemUnitPrice = mysql_result($result,$i,"ItemUnitPrice");
$ItemCategory = mysql_result($result,$i,"ItemCategory");
$Quantity = mysql_result($result,$i,"Quantity");


echo "<tr><td align=center>$ItemCode</td><td align=center>$ItemDesc</td>";
echo "<td align=center>£$ItemUnitPrice</td>";
echo "<td align=center>$ItemCategory</td><td align=center>$Quantity</td>";

$i++;

}



echo "</table><center>";
echo "$num Item(s) found.";

echo "<br/><br/><center><form action = 'clear.php'><input type='submit' value='Clear'>   </form></center>";



?>



<html>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_BLANK">
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="business" value="email@example.com" />
<input type="hidden" name="item_name" value="<? echo $ItemDesc ?>" />
<input type="hidden" name="item_number" value="TEST ITEM NUMBER" />
<input type="hidden" name="amount" value="<? echo $cartTotalPrice ?>" />
<input type="hidden" name="currency_code" value="GBP" />
<input type="hidden" name="lc" value="GB" />
<input type="hidden" name="bn" value="PP-BuyNowBF" />
<input src="paypal/purchase.png" name="Submit" type="image" value="purchase"    alt="Purchase" />
</form>
</html>
4

2 に答える 2

1

まずはmysql_*関数を使う癖を直しましょう!PDOまたはを使用しmysqliます。

PHP で mysql_* 関数を使用してはいけないのはなぜですか?

http://php.net/pdo

次に、悲しいことに、あなたのコードは完全に間違っています!

session_start();

$query = "SELECT * FROM Cart";
$result = mysql_query($query);
$num = mysql_num_rows($result);

$cartTotalPrice = 0;

while($row = mysql_fetch_assoc($result))
{
    $cartTotalPrice += ($row['itemUnitPrice']*$row['Quantity']);

    echo "<tr><td align=center>{$row['itemCode']}</td><td align=center>{$row['ItemDesc']}</td>";
    echo "<td align=center>{$row['ItemUnitPrice']}</td>";
    echo "<td align=center>{$row['$ItemCategory']}</td><td align=center>{$row['$Quantity']}</td></tr>";
}

$_SESSION['totalCost'] = $cartTotalPrice;

// $_SESSION['totalCost'] is now available on every page (as long as you use start_session() before any output)

mysql_close();
于 2013-05-29T20:49:20.220 に答える