首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP/MySQL多维/关联数组3试算

PHP/MySQL多维/关联数组3试算
EN

Stack Overflow用户
提问于 2014-04-20 10:30:56
回答 1查看 1.1K关注 0票数 1

我目前正在编写一个会计代码,它将根据存储在MySql中的数据打印一个试算表。我似乎无法将我的头放在应该正确显示试用平衡的数组上。数据集看起来有点像这样:

id _

1.自愿的、自愿的、自愿的

2、无偿的、无偿的、无价的、

3.商业、金融、商业、金融等行业的商业、金融、商业、商业、金融等行业的无偿维修、贴现性、无偿性、无偿性等。

试算表的输出应以如下的双重输入格式显示:

帐务、商业、商业、金融、商业、金融、商业等行业的商业银行、商业银行

银行

 /T1582-1997现金专用制,转帐机

财政、金融、金融等。

 /T1582-1997修理专用机比较

请注意,两个帐户(银行和现金)必须根据付款模式field...and自动生成,它们的值(在本例中为5000和2000 )也取决于“金额”列下的值。

因此,到目前为止,我的当前代码是这样的:(它只输出帐户总数,但只输出借方帐户)

代码语言:javascript
复制
// 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>';

编辑:上述语句的当前输出:

帐务、商业、商业、金融、商业、金融、商业等行业的商业银行、商业银行

 /T1487-1997学费准准

 /T1582-1997修理专用机比较

问:上述数据集如何用于输出上面显示的数据(在适当的情况下与借方和贷方对齐)?

提前谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-20 12:51:58

好的(我应该在那些账户讲座中花更多的精力)。现在我不知道一个帐户(银行和现金除外)是否可以同时拥有借方和贷方,但由于您的示例条目没有显示,我猜它没有。此外,下面的代码假设(如上面的注释中所示)您有一个列(我将其命名为transaction),它说明是Dr条目还是Cr条目。

代码语言:javascript
复制
//this array will hold bank and cash values
$main_acc=array('bank'=>array('Dr'=>0,'Cr'=>0), 'cash'=>array('Dr'=>0,'Cr'=>0));

//this one to hold other accounts and their amounts, transaction etc.
$acc = array();
while($rowin = mysqli_fetch_array($rein, MYSQLI_ASSOC)) {
    /* store bank transaction type and amount */
    if($rowin['paymode']=='Cheque'){
        $main_acc['bank'][$rowin['transaction']] =$main_acc['bank'][$rowin['transaction']] + $rowin['amount'];
    }
    /* store cash transaction type and amount */
    if($rowin['paymode']=='Cash'){
        $main_acc['cash'][$rowin['transaction']] = $main_acc['cash'][$rowin['transaction']] + $rowin['amount'];
    }
    /* store other account transaction type and increment
       amount if already exists */
    if(isset($acc[$rowin['account']])){
        $acc[$rowin['account']]['amount'] = $acc[$rowin['account']]['amount'] +$rowin['amount'];
    }
    else
    {
        $acc[$rowin['account']]['trans'] = $rowin['transaction'];
        $acc[$rowin['account']]['amount'] = $rowin['amount'];

    }

}

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';
//displaying bank and cash
foreach($main_acc as $key=>$val){

            $bg = ($bg=='#eeeeee') ? '#ffffff' : '#eeeeee';
            echo '<tr bgcolor="'. $bg .'">
                    <td align="left">'. $key .'</td>
                    <td align="left">'. (($val['Cr']!=0)?$val['Cr']:'') .'</td>
                    <td align="right">'. (($val['Dr']!=0)?$val['Dr']:'').'</td>
                  </tr>
        ';
}

//displaying other accounts
foreach($acc as $key=>$val){

            $bg = ($bg=='#eeeeee') ? '#ffffff' : '#eeeeee';
            echo '<tr bgcolor="'. $bg .'">
                    <td align="left">'. $key .'</td>
                    <td align="left">'. (($val['trans']=='Dr')?$val['amount']:'') .'</td>
                    <td align="right">'. (($val['trans']=='Cr')?$val['amount']:'') .'</td>
                  </tr>
        ';
}
echo '</table>';

输出:

代码语言:javascript
复制
ACCOUNT DEBIT   CREDIT
bank    5000    
cash    2000      500
TUITION          7000
Repairs 500
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23181047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档