Php 支票簿余额

Php 支票簿余额,php,mysql,Php,Mysql,我正在用PHP制作一个个人理财程序,我被困在一个应该很容易完成的任务上——平衡账户 事务存储在MySQL中,每个事务都有一个类型-1用于取款,2用于存款。下面是我的PHP平衡帐户,没有得到任何接近正确的数额 //Get the starting balance $getStartingBalance = $db->query("SELECT amount FROM startingBalance WHERE id = 1"); $startingBalance = $getStarting

我正在用PHP制作一个个人理财程序,我被困在一个应该很容易完成的任务上——平衡账户

事务存储在MySQL中,每个事务都有一个类型-1用于取款,2用于存款。下面是我的PHP平衡帐户,没有得到任何接近正确的数额

//Get the starting balance
$getStartingBalance = $db->query("SELECT amount FROM startingBalance WHERE id = 1");
$startingBalance = $getStartingBalance->fetch();
$startingBalance = $startingBalance['amount'];
//Balance transactions
    $getAllTransactions = $db->query("SELECT * FROM transactions ORDER BY date");
    while ($balanceEntry = $getAllTransactions->fetch()) {
        $balanceEntryType = $balanceEntry['type'];
        $balanceEntryAmount = $balanceEntry['amount'];
        if ($balanceEntryType == "1") {
            $accountBalance = $startingBalance - $balanceEntryAmount; 
        } else if ($balanceEntryType == "2") {
            $accountBalance = $startingBalance + $balanceEntryAmount;
        }
    }

有什么想法吗?谢谢

$accountBalance=$startingBalance-$balanceEntryAmount

这意味着每次你点击这一行,你将当前余额设置为原始余额减去输入金额。您可能希望在while循环之前分配:

# or just rename $startingBalance to $accountBalance
$accountBalance = $startingBalance;
然后在你的while循环中

$accountBalance = $accountBalance - $balanceEntryAmount;
当然,您还必须修复条件语句的另一个分支

下一次,当您遇到类似这样的错误时,请尝试在日志文件中输出每个计算的当前值—您会很快发现这一点。

与其存储“事务类型”列,为什么不只存储已签名的事务值呢

  • 如果是押金的话是肯定的
  • 如果是取款,则为阴性
这样,您就可以通过简单的sql查询获得帐户余额


从交易记录中选择金额

啊!当然这就是你匆忙编程时发生的事情。谢谢:)这主意不错!这实际上是一个我从无聊中开始的项目,目的是想弄清楚我的钱花到哪里去了。最后决定添加存款,这是最快的解决方案,有数百个条目。谢谢你的提示:)好吧,这段代码和你所从事的其他项目的代码可以用一点sql知识大大简化。实际上,我在程序的其他地方使用的是按类别和月份计算的确切sql。我不知道如何为这样的东西实现这一点SQL。再次感谢:)