2013-04-18 132 views
0

我已經創建了一個腳本,使用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

首先,你應該尋找使用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; 
+0

完美的......絕對是有道理的後呼應$總。你至少救了我4個小時。我會採取建議,並檢查出mysqli和PDO。再次感謝。 –

0

如果我能正確理解你想要的行爲。 在每次循環$sub_total添加到$total_costecho這點你已經完成了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; 
?> 
+0

點上...乾杯 –

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']; 
0

while循環的每次迭代創建要添加到您的常量變量$總一個新的變量$小計。

所以在循環中,你可以$小計增加$總量和while循環退出

while($row = mysql_fetch_array($result)) 
{ 
    // your code 
    $total = $total + $subtotal; // shorthand is - $total += $subtotal. 
} 

echo $total;