Значения строки счета PDO на основе ГДЕ - PullRequest
0 голосов
/ 07 января 2019

Я просматривал сайт PHPDelusions несколько раз, прежде чем спрашивать об этом, а также пользовался Google, но я все еще не могу заставить работать код или найти решение, которое удаленно отражает мой вопрос в целом.

Я сделал очень простой скрипт PHP7 для управления квитанциями. Поля простые.

id (int 12), amount (varchar 8), category (int 2), date (date)

Проблема, с которой я сталкиваюсь, заключается в том, что я пытаюсь Подсчитать Общая сумма денег на основе Категории . Допустим, Category = 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 CAD

1 Ответ

0 голосов
/ 07 января 2019

У вас есть пара вопросов. Во-первых, чтобы получить общую сумму денег для каждой категории, вы должны использовать 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';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...