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 に答える