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






Вы можете легко вести текущую сумму суммы, и количество счетов-фактур точно такое же, как и в вашем цикле 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**) );
Вы уверены, что у вас есть + в $total += ?
да. Но ладно, я решил это один. Вместо этого + = $ arrayAmount; Я добавил = ($ arrayAmount + $ total); и работает нормально :)
Количество счетов-фактур работает нормально, но не все счета-фактуры. Ваш код показывает мне только сумму последнего счета.