这是我用来尝试计算“ amountReceived”列总和的代码。 invID'95'的总数应为312,但由于某些原因,它仅=300。我不确定是什么问题。 (请参见下面的数据库图片)。

$sql = mysql_query("SELECT amountReceived FROM payments WHERE invID='".$id."'");
$result = mysql_fetch_array($sql);
$totalPayment = array_sum($result);
$balanceDue = $invoiceTotal - $totalPayment;

最佳答案

好的mysql_fetch_array($ sql)返回一个数组,其中包含您获取的一行的所有“列”,这意味着您将得到一个例如数组('amountReceived'=> 150)

这应该工作:

$sql = mysql_query("SELECT amountReceived FROM payments WHERE invID='".$id."'");
$totalPayment = 0;
while($result = mysql_fetch_array($sql)) {
    $totalPayment += $result['amountReceived'];
}
$balanceDue = $invoiceTotal - $totalPayment;


这只是问题的PHP侧面描述,如果您想提高效率,请使用sel版本;)

关于php - PHP数组总和不加所有项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11514881/

10-08 21:36