Php 汇总动态生成的字段
我创建了一个使用php动态填充表字段的脚本。如果您查看下面的代码片段,我现在遇到了一个难题,我想添加所有Php 汇总动态生成的字段,php,Php,我创建了一个使用php动态填充表字段的脚本。如果您查看下面的代码片段,我现在遇到了一个难题,我想添加所有$sub_total以创建$total_cost。我不确定我是否解释得很好,但如果有任何指导,我将不胜感激 // loop through results of database query, displaying them in the table while($row = mysql_fetch_array( $result )) { // Calcula
$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>";
//循环数据库查询的结果,并将其显示在表中
while($row=mysql\u fetch\u数组($result)){
//计算每天完成的小时数
$hrs_done=$row['time_out']-$row['time_in'];
如果($hrs_done>$row['con_hr']){$hrs=$hrs_done;}
else{$hrs=$hrs_done;}
//将结果回显到表中
回声“;
回显“.$row['date']”;
回音“.$hrs.”;
回显'.$row['rate'].';
回音“”?>
//将小时数乘以费率,得到当天的小计费用
如果我正确理解你想要的行为。
在循环过程中,将每个$sub_total
添加到$total_cost
中,并在完成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;
?>
首先,您应该查找使用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;
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'];
while循环的每次迭代都会创建一个新变量$subtotal,您希望将其添加到常量变量$total中
因此,在循环中,您可以将$subtotal添加到$total,并在while循环退出后回显$total
while($row = mysql_fetch_array( $result ))
{
// your code
$total = $total + $subtotal; // shorthand is - $total += $subtotal.
}
echo $total;
完美…绝对有道理。你刚刚帮我节省了至少4小时。我会接受你的建议,查看mysqli和PDO。再次感谢。