我创建了一个脚本,使用php动态填充表的字段。如果您查看下面的代码片段,我现在已经打了一个砖墙,我想添加所有$sub_total
来创建$total_cost
。不确定我是否正在解释这个问题,但任何方向都会非常感激。
// loop through results of database query, displaying them in the table
while($row = mysql_fetch_array( $result )) {
// Calculate hours done per day
$hrs_done = $row['time_out'] - $row['time_in'];
if($hrs_done > $row['con_hr']){$hrs = $hrs_done;}
else{$hrs = $hrs_done;}
// echo out results into a table
echo "<tr>";
echo '<td bgcolor="#FFFFFF">' . $row['date'] . '</td>';
echo '<td bgcolor="#FFFFFF">' . $hrs . '</td>';
echo '<td bgcolor="#FFFFFF">' . $row['rate'] . '</td>';
echo '<td bgcolor="#FFFFFF">'?>
// Multiply hrs by rate to get sub total charge for day
<?php $sub_total = $hrs * $row['rate'];
echo $sub_total ;
?>
<?php '</td>';
echo "</tr>";
}
// close table>
echo "</table>";
答案 0 :(得分:0)
如果我理解你理想的行为。
在循环过程中,在完成$sub_total
循环
$total_cost
添加到echo
和while
<?php
$total_cost = 0;
while($row = mysql_fetch_array( $result )) {
$sub_total = $hrs * $row['rate'];
$total_cost += $sub_total;
}
echo "Total cost: " . $total_cost;
?>
答案 1 :(得分:0)
首先,您应该查找使用mysqli
或PDO
进行数据库访问的教程,因为mysql_*
函数已弃用。
其次,这个问题就像在迭代循环时加上小计项一样简单
$grand_total = 0;
while($row = mysql_fetch_array( $result )) {
// your other code omitted for clarity
$sub_total = $hrs * $row['rate'];
$grand_total += $sub_total;
echo $sub_total ;
// more code
}
echo $grand_total;
答案 2 :(得分:0)
您的IF / ELSE块在两种情况下都会产生同样的结果。这是期望的结果吗?
另一方面,我不确定,如果我理解你是对的,但如果我这样做,这是我的回答。
由于你想收到所有$ sub_total,你需要所有其他构建了$ sub_total的变量:
他们是:
$hrs = $hrs_done = $row['time_out'] - $row['time_in']
$row['rate'];
如果您尝试使用SUM()MySQL函数,您将收到上述列的总和:
SELECT sum(time_out) as 'sum_time_out', sum(time_in) as 'sum_time_in', sum(rate) as 'sum_rate' FROM myTable;
$hrs_sum = $hrs_done_sum = $row['sum_time_out'] - $row['sum_time_in'];
$stotal_cost = $hrs)sum * $row['sum_rate'];
答案 3 :(得分:0)
while循环的每次迭代都会创建一个新变量$ subtotal,您希望将其添加到常量变量$ total。
所以在循环中你可以将$ subtotal添加到$ total并在while循环退出后回显$ total
while($row = mysql_fetch_array( $result ))
{
// your code
$total = $total + $subtotal; // shorthand is - $total += $subtotal.
}
echo $total;