0

データベース内の注文 ID が URL で渡された値と等しいデータベース テーブルの行を提供する請求書テーブルを作成しました。テーブルは完璧に機能します。コードは次のとおりです。

$result = mysqli_query($con,"SELECT * FROM b_sale_basket WHERE ORDER_ID=$ID LIMIT 10");

while($row = mysqli_fetch_array($result))   {   
$quantity = $row['QUANTITY'];   
$description = $row['NAME'];   
$unitprice = $row['PRICE'];   
$lineprice = $row['PRICE']*$row['QUANTITY']; 

$tbl_header = '<table style="width: 650px;" cellspacing="0" cellpadding="5">';
$tbl_footer = '</table>'; 
$tbl = '';

// foreach item in your array... $tbl .= '
    <tr>
        <td style="width: 50px; text-align: left; border-bottom: 0.1em solid #808080;"><p style="color:#808080;">'.number_format($quantity,0).'</p></td>
        <td style="width: 350px; border-bottom: 0.1em solid #808080;"><p style="color:#808080;">'.$description.'</p></td>
        <td style="width: 125px; text-align:right; border-bottom: 0.1em solid #808080;"><p style="color:#808080;">'.number_format($unitprice,2).'</p></td>
        <td style="width: 125px; text-align:right; border-bottom: 0.1em solid #808080;" align="right" ><p style="color:#808080;">'.number_format($lineprice,2).'</p></td>
    </tr> ';

このコードは、注文内のすべての行をループします。それが示している:

Quantity     | Product Name     | Price     | Line Total
1            | Gold Frame       | £10.00    | £10.00
3            | Silver Frame     | £5.00     | £15.00

だから私の質問。行の合計の合計を取得するにはどうすればよいですか。上記の例では、GRAND TOTAL を £25.00 に等しくしたいと考えています。

GROUP BY ID があることは理解していますが、各行の複数の値の数量 * 価格を一緒に追加する方法がわかりません。

どんな助けでも大歓迎です。

4

2 に答える 2

3

結果をループしながら合計するだけです。

$total = 0;
while($row = mysqli_fetch_array($result))   {   
  $quantity = $row['QUANTITY'];   
  $description = $row['NAME'];   
  $unitprice = $row['PRICE'];   
  $lineprice = $row['PRICE']*$row['QUANTITY'];
  $total += $lineprice;
}

echo $total;
于 2013-09-26T14:21:06.090 に答える
1

ループの開始前に新しい変数を導入し、各ループ反復で $lineprice の値を増やします。

$result = mysqli_query($con,"SELECT * FROM b_sale_basket WHERE ORDER_ID=$ID LIMIT 10");

$total=0;
while($row = mysqli_fetch_array($result))   {   
$quantity = $row['QUANTITY'];   
$description = $row['NAME'];   
$unitprice = $row['PRICE'];   
$lineprice = $row['PRICE']*$row['QUANTITY']; 
$total=$total+$lineprice;

$tbl_header = '<table style="width: 650px;" cellspacing="0" cellpadding="5">';
$tbl_footer = '</table>'; 
$tbl = '';

// foreach item in your array... $tbl .= '
    <tr>
        <td style="width: 50px; text-align: left; border-bottom: 0.1em solid #808080;"><p style="color:#808080;">'.number_format($quantity,0).'</p></td>
        <td style="width: 350px; border-bottom: 0.1em solid #808080;"><p style="color:#808080;">'.$description.'</p></td>
        <td style="width: 125px; text-align:right; border-bottom: 0.1em solid #808080;"><p style="color:#808080;">'.number_format($unitprice,2).'</p></td>
        <td style="width: 125px; text-align:right; border-bottom: 0.1em solid #808080;" align="right" ><p style="color:#808080;">'.number_format($lineprice,2).'</p></td>
    </tr> ';

ループが完了したら、<tr><td>合計を追加して出力します。

于 2013-09-26T14:22:56.570 に答える