总结动态生成的字段

时间:2013-04-18 17:47:58

标签: php

我创建了一个脚本,使用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>";

4 个答案:

答案 0 :(得分:0)

如果我理解你理想的行为。 在循环过程中,在完成$sub_total循环

之后,将每个$total_cost添加到echowhile
<?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)

首先,您应该查找使用mysqliPDO进行数据库访问的教程,因为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;