【发布时间】:2014-06-04 13:15:48
【问题描述】:
我目前正在编写一个会计代码,该代码将根据存储在 MySql 中的数据打印出试算表。我似乎无法理解应该正确显示试算表的数组。数据集看起来有点像这样:
标识 |帐户 |金额 |支付方式
1 学费 5000 支票
2 学费 2000 现金
3 维修 500 现金
试算表的输出应以复式格式显示,如下所示:
帐户 |借方 |信用
银行 5000
现金 2000 500
学费 7000
维修 维修
请注意以上两个帐户(银行和现金)必须由代码自动生成,具体取决于 paymode 字段...并且它们的值(在本例中为 5000 和 2000)也取决于在“金额”列。
所以到目前为止,我当前的代码如下所示:(它输出帐户的总数,但仅在借方方面)
// Make the query(Get Accounts and Totals):
$rein = @mysqli_query ($con, "SELECT account, amount, paymode FROM tbl_finance"); // Run the query.
$bg = '#eeeeee';
$accarr = array();
while($rowin = mysqli_fetch_array($rein, MYSQLI_ASSOC)) {
if(!isset($accarr[$rowin['type']])) {
$accarr[$rowin['type']]['amount'] = 0;
}
$sum = $rowin['amount_paid'];
$accarr[$rowin['type']]['amount'] += $sum;
$accarr[$rowin['type']]['paymode'] = $rowin['payterm'];
} // End While
mysqli_free_result($rein);
print_r($accarr);
echo '
<table>
<tr>
<td align="left"><b>ACCOUNT</b></td>
<td align="right"><b>DEBIT</b></td>
<td align="right"><b>CREDIT</b></td>
</tr>
';
$bg = '#eeeeee';
foreach($accarr as $acc => $data) {
$bg = ($bg=='#eeeeee' ? '#ffffff' : '#eeeeee');
echo '
<tr bgcolor="'. $bg .'">
<td align="left">'. $acc .'</td>
<td align="right">'. $data['amount'] .'</td>
</tr>
';
} // End foreach
echo '</table>';
编辑:上述语句的当前输出:
帐户 |借方 |信用
学费 7000
维修 维修
问题:如何使用上述数据集输出如上所示的数据(在适当的情况下与借方和贷方对齐)?
提前致谢
【问题讨论】:
-
您能否也粘贴您现在获得的当前输出?此外,我们如何知道特定帐户是 debit 还是 credit?
-
在此处查看粘贴代码的指南
-
@cheezburger,我是否应该添加另一列明确指出是 Dr 还是 Cr?如果是这样(假设存在这样的列)代码会是什么样子?
-
@Brian 是的,我认为您的表格需要另一列来指出哪个帐户是借记的,哪个是贷记的。假设它存在,我会尝试编写代码。
标签: php mysql multidimensional-array associative-array