又得到了一个问题......
我在循环工作时有以下内容:
$activityreport = "SELECT $fieldname FROM $table WHERE QuoteID=$quoteid";
$activity = mysql_query($activityreport) or die(mysql_error());
while($data = mysql_fetch_array($activity)){
$amount = $data[$fieldname];
if($amount>0 && $table != 'OptionFees'){
$amountc = abs($amount);
}
elseif($amount>0 && $table == 'OptionFees'){
$amountd = abs($amount);
}
elseif($amount<0 && $table == 'OptionFees'){
$amountc = abs($amount);
}
else{
$amountd = abs($amount);
}
$totald = $totald + $amountd;
$totalc = $totalc + $amountc;
echo "<tr><td class='description'>$table</td>
<td class='debit'>".money_format('%(#10n', $amountd)."</td>
<td class='credit'>".money_format('%(#10n', $amountc)."</td></tr>";
}
我的问题是,$ totald和$ totalc最后只是结果来自上一轮的while循环,而不是所有行程的总和。
如果不是IF语句分解$ data [$ fieldname],我可以使用$ total + = $ data [$ fieldname] ,但细分很重要。正如您所看到的,我正在使用它来创建一个表格,该表格将显示GL帐户及其各自的日记帐分录的借方和贷方。每个帐户的行显示完美,但总计只显示最后一行的重复。
非常非常感谢任何帮助!
答案 0 :(得分:1)
在开始循环之前初始化这些变量:
$activityreport = "SELECT $fieldname FROM $table WHERE QuoteID=$quoteid";
$activity = mysql_query($activityreport) or die(mysql_error());
$totald = 0;
$totalc = 0;
while($data = mysql_fetch_array($activity)){
$amount = $data[$fieldname];
$amountc = 0;
$amountd = 0;
if($amount>0 && $table != 'OptionFees'){
$amountc = abs($amount);
}
elseif($amount>0 && $table == 'OptionFees'){
$amountd = abs($amount);
}
elseif($amount<0 && $table == 'OptionFees'){
$amountc = abs($amount);
}
else{
$amountd = abs($amount);
}
$totald = $totald + $amountd;
$totalc = $totalc + $amountc;
echo "<tr><td class='description'>$table</td>
<td class='debit'>".money_format('%(#10n', $amountd)."</td>
<td class='credit'>".money_format('%(#10n', $amountc)."</td></tr>";
}