Подсчитать суммы / число, сгенерированные из mysqli / PHP

У меня есть форма, в которой я указываю дату начала и окончания для выбранных счетов и генерирую XML с данными этих счетов.

В конце этого XML я хочу подсчитать некоторые суммы и количество выставленных счетов.

Например: я выбираю 01.12.2018 в качестве даты начала и 31.12.2018 в качестве даты окончания счетов. Моя функция извлекает из базы данных MySQL информацию о 7 счетах, выпадающих на эти даты. Данные представляют собой, например, сумму каждого счета по одному. Я хочу иметь в конце моего XML-файла сводку извлеченных счетов-фактур - номер и сумму всех сгенерированных счетов-фактур.

Мой код:

$header = $dom->createElement('Header');
for($i=1; $i<count($array); $i++) {
   $arrayAmount = $array[$i]['amount'];
   $invoice = $dom->createElement('Invoice');
   $invoice->appendChild($CountAmount   = $dom-> 
   createElement('AmountInvoice', $arrayAmount) );
   $allInvoices = $dom->createElement('AllInvoices');
   $allInvoices->appendChild($allInvoices = $dom-> 
   createElement('AllAmountInvoices', **$amountInvoices**) );
   $allInvoices->appendChild($allInvoices = $dom-> 
   createElement('NumberOfInvoices', **$numberOfInvoices**) );
}

переменные со звездами - это место, где моя функция будет показывать сумму и количество счетов.

Я пытаюсь сделать что-то вроде этого:

$amountInvoicesSQL = mysqli_query($mysqli, "SELECT SUM(amount) FROM INVOICES WHERE issue_date BETWEEN ? AND ?");
$amountInvoicesMYSQL = mysqli_fetch_assoc($amountInvoicesSQL);
$amountInvoices = $amountInvoicesMYSQL['amount'];

Есть ли у вас какие-либо идеи? :)

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
96
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете легко вести текущую сумму суммы, и количество счетов-фактур точно такое же, как и в вашем цикле for ...

$header = $dom->createElement('Header');
$total = 0;
for($i=1; $i<count($array); $i++) {
    $arrayAmount = $array[$i]['amount'];
    $invoice = $dom->createElement('Invoice');
    $invoice->appendChild( $dom-> createElement('AmountInvoice', $arrayAmount) );
    $total += $arrayAmount;
}

$allInvoices = $dom->createElement('AllInvoices');
$allInvoices->appendChild( $dom-> createElement('AllAmountInvoices', $total ));
$allInvoices->appendChild( $dom-> createElement('NumberOfInvoices', count($array) ));

Вы не должны добавлять итоги в каждом цикле, только один раз в конце цикла. Но я не уверен, куда вы их вообще добавляете в $header.

Также обратите внимание, что я удалил способ присвоения переменной при создании элемента

   $allInvoices->appendChild($allInvoices = $dom-> 
       createElement('NumberOfInvoices', **$numberOfInvoices**) );

становится

   $allInvoices->appendChild($dom-> createElement('NumberOfInvoices', **$numberOfInvoices**) );

Количество счетов-фактур работает нормально, но не все счета-фактуры. Ваш код показывает мне только сумму последнего счета.

Kacper 07.01.2019 11:19

Вы уверены, что у вас есть + в $total += ?

Nigel Ren 07.01.2019 13:36

да. Но ладно, я решил это один. Вместо этого + = $ arrayAmount; Я добавил = ($ arrayAmount + $ total); и работает нормально :)

Kacper 07.01.2019 13:54

Другие вопросы по теме