подсчитать количество / число, сгенерированное из mysqli / PHP - PullRequest
0 голосов
/ 07 января 2019

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

У вас есть идеи? :)

1 Ответ

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

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