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 回答