0

我有一个使用PHP和的订单系统MySQL。创建订单时,某些订单项具有不同的TAX费率。如果在订单结束时,我想以某种方式总结 TAX 信息并显示总税率的百分比,而不是仅显示 TAX 总计的行,那就太好了。

例如,一个 SQL 订单可能如下所示:

QTY  CODE       DESCRIPTION    UNIT    TAX%  TAX     TOTAL
1    Bulb       Light bulb     1.00    20    0.20    1.20
1    Plug       13A Plug       2.00    15    0.30    2.30
3    Cable      Cable /m       0.50    20    0.30    1.80
1    Delivery   Delivery       5.00    0     0.00    5.00

...将使用以下内容在页面上呈现:

while($row = mysql_fetch_array($order) {
  $totalNet =+ $row['QTY'] * $row['UNIT'];
  $totalTax =+ $row['TAX'];
  $total =+ $row['TOTAL']'

  echo "<tr><td>".$row['QTY']."</td></tr>
  etc..
}
echo "Order Net: ".$totalNet;
echo "Order TAX: ".$totalTax;
echo "Order Total: ".$total;

...在订单结束时,最好显示税收摘要,如下所示:

Vat at    Total
20%       0.50
15%       0.30
0%        0.00

我的问题是如何构建它。我一直在按照IF陈述的方式思考,但我确信有一种更合乎逻辑的方式。您是否为每个 TAX% 创建一个变量?

4

1 回答 1

0

使用关联数组键控税率。

$taxes = array();

while($row = mysql_fetch_array($order) {
  $totalNet =+ $row['QTY'] * $row['UNIT'];
  $totalTax =+ $row['TAX'];
  $total =+ $row['TOTAL']';
  if (isset($taxes[$row['TAX_RATE']])) {
    $taxes[$row['TAX_RATE']] += $ROW['TAX'];
  } else {
    $taxes[$row['TAX_RATE']] = $ROW['TAX'];
  }

  echo "<tr><td>".$row['QTY']."</td></tr>
  etc..
}

foreach ($taxes as $rate => $tax_rate_total) {
  echo "<tr><td>$rate%</td><td>$tax_rate_total</td></tr>\n";
}
于 2013-07-02T01:20:28.490 回答