我正在研究一个简单的财务跟踪器,似乎一直试图找出使用PHP和MySQL的简单任务 - 显示正在运行的财务平衡。
有两个MySQL表,一个包含每个帐户的起始余额,另一个包含各个事务。出于开发目的,我只使用一个帐户。我想要做的是迭代交易并显示一个运行总计,如果是提款则从起始余额中减去,如果是存款则从中减去。每笔交易的amount
列都会对提款进行负面签名,并对存款有正面评价。
这是我没有运气的尝试:
<?php
$getTransactions = $db->query("SELECT * FROM transactions ORDER BY date, id");
//Get the starting balance
$getStartingBalance = $db->query("SELECT amount FROM startingBalance WHERE id = 1");
$startingBalance = $getStartingBalance->fetch();
//Start off with Running Total same as Starting Balance
$runningTotal= $startingBalance['amount'];
//Iterate through transactions
while ($transaction = $getTransactions->fetch()) {
$amount = $transaction['amount'];
if ($amount < 0) {
$runningTotal = $runningTotal - $amount;
} else {
$runningTotal = $runningTotal + $amount;
}
}
?>
即使数字为负,上述内容也会执行添加。如何使用签名号码完成此操作?在过去,我使用整数来区分存款和取款(1存款,2存款取款),但有人建议签署的价值是更好的路线。
感谢您的帮助
答案 0 :(得分:1)
负面消极是积极的!例如3 - (-1) == 4
由于您的交易已签名,因此您无需有选择地添加或减去。你可以跳过:
if ($amount < 0) {
$runningTotal = $runningTotal - $amount;
} else {
$runningTotal = $runningTotal + $amount;
}
用
替换它$runningTotal = $runningTotal + $amount;
答案 1 :(得分:1)
你有一个标志错误。
if ($amount is less than zero) {
subtract from total
} else {
add to total
}
记住基本数学:负数减去负数实际上是一个补充。由于您已签名,因此无需<0
检查,只需添加所有数字:
$total = $total + $amount;
如果$ amount为负数,它自然会变成减法。