我正在学习PHP,并尝试输出“价格”列的总和。
这就是现在的样子: http://imgur.com/X00o4jS
以下是代码:
while($row = $result->fetch_array()){
$rows[] = $row;
}
foreach($rows as $row){
$food = $row["food"];
$price = $row["price"];
$id = $row['id'];
if(!empty($_POST[$id])){
$qtyPrice = $price * $_POST[$id];
$qty = $_POST[$id];
}
echo "<tr>
<td>$food</td>
<td>$qty</td>
<td>$$qtyPrice</td>
</tr>";
}
答案 0 :(得分:0)
在开始循环之前设置变量,并在其中添加qtyPrice。退出循环后打印该变量
$total = 0;
foreach($rows as $row){
$food = $row["food"];
$price = $row["price"];
$id = $row['id'];
if(!empty($_POST[$id])){
$qtyPrice = $price * $_POST[$id];
$total += $qtyPrice;
$qty = $_POST[$id];
}
echo "<tr>
<td>$food</td>
<td>$qty</td>
<td>$$qtyPrice</td>
</tr>";
}
echo $total;
答案 1 :(得分:0)
无需进行2次循环。您正在使用1st while循环设置数组,然后使用第二个foreach循环来读取它并显示数据。
使用while循环直接生成html表会更有效。
您可以使用$total += $qtyPrice (same as $total = $total + $qtyPrice)
。
只需记住在循环之前将其设置为0.
$total = 0;
while($row = $result->fetch_array()){
$food = $row["food"];
$price = $row["price"];
$id = $row['id'];
if(!empty($_POST[$id])){
$qtyPrice = $price * $_POST[$id];
$qty = $_POST[$id];
$total += $qtyPrice;
echo "<tr>
<td>$food</td>
<td>$qty</td>
<td>$$qtyPrice</td>
</tr>";
}
//display the total in its separate row
echo "<tr><td>Total:</td><td></td><td>$total</td></tr>";
希望这有帮助!