在问这个问题之前,我曾多次浏览过PHPDelusions网站,并使用过Google,但我似乎仍然无法使代码正常工作,也找不到能远程反映我的问题的解决方案。
我制作了一个超级简单的PHP7脚本来管理收据。字段很简单。
id (int 12), amount (varchar 8), category (int 2), date (date)
我面临的问题是我试图根据类别 计数金额总金额。因此,假设 Category = 1 (类别= 1)将计算该类别下的所有金额,依此类推。
这是我现有的代码。
function getAmountCount(PDO $pdo, $cat) {
$data = $pdo->prepare("SELECT COUNT(*) FROM `receipts` WHERE category = :cat_id");
$data->bindValue(':cat_id', $cat, PDO::PARAM_INT);
$data->execute();
$result = $data->fetchColumn();
echo money_format('%(#10n', $result['amount']).' CAD';
}
#and here is how we call it in the script
echo getAmountCount($pdo, 1);
当前代码返回: 0.00加元
答案 0 :(得分:0)
您有几个问题。首先,要获取每个类别的总金额,您应该使用SUM
,而不是COUNT
。 COUNT
将仅返回与该类别关联的行数的计数。其次,fetchColumn
返回单个值,而不是数组。将查询更改为此:
SELECT SUM(amount) AS amount FROM `receipts` WHERE category = :cat_id
和
echo money_format('%(#10n', $result['amount']).' CAD';
到
echo money_format('%(#10n', $result).' CAD';