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>";
4

4 に答える 4

0

あなたの望ましい行動を正しく理解できれば。ループ中に、ループが完了した後に each$sub_totalとthis を$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;
?>
于 2013-04-18T17:51:16.673 に答える
0

while ループを繰り返すたびに、定数変数 $total に追加する新しい変数 $subtotal が作成されます。

そのため、ループ内で $subtotal を $total に追加し、while ループの終了後に $total をエコーすることができます

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

echo $total;
于 2013-04-18T17:59:03.417 に答える
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;
于 2013-04-18T17:53:07.117 に答える