Заранее благодарим за подробную помощь и ответы.Общее число столбцов в зацикленной таблице (не общая сумма запроса)
Я был в тупике в течение нескольких недель. Изучал онлайн и не мог понять это. Пожалуйста помоги.
Важно отметить, что столбец, который я пытаюсь получить, НЕ хранится в моей базе данных sql. SELECT SUM не будет работать для этого. Я также предпочел бы не писать колонку SUBTOTAL в sql - потому что, если мне нужно будет изменить часы или скорость (если бы была клерикальная ошибка), я бы скорее просто изменил 1 поле, чем 2.
Вот что моя таблица выглядит, заселена из SQL запроса: table looks like
Где таблица говорит TOTAL, мне нужно, чтобы сложить столбец над ней и заполнения общей.
Вот мой код - это долго, потому что я включаю все, если вам это нужно.
$staffquery = mysqli_query($con, "SELECT * FROM kmis_transcribers WHERE transcriber_projectid = '$projectinvoiceid ' ORDER BY transcriber_calltime ASC");
$staffcount = mysqli_num_rows($staffquery);
for($i=0; $i<$staffcount; $i++) {
$staffarray = mysqli_fetch_array($staffquery);
$staffid = $staffarray['transcriber_id'];
$staffregid = $staffarray['transcriber_registryid'];
$staffposition = $staffarray['staff_position'];
$staffcalltime = $staffarray['transcriber_calltime'];
$staffrate = $staffarray['staff_rate'];
$staffhours = $staffarray['transcriber_hours'];
$staffovertime = $staffarray['transcriber_overtime'];
echo('<tr>
<td align="center" style="border:1px solid #000000; padding:3px">$'.$staffrate.'</td>
<td align="center" style="border:1px solid #000000; padding:3px">');
$invoicequery = mysqli_query($con, "SELECT * FROM kmis_invoices WHERE invoice_staffid='$staffid'");
while ($invoicearray = mysqli_fetch_array($invoicequery)) {
echo(''.$invoicearray['invoice_hours'].'');
}
echo('</td>
<td align="center" style="border:1px solid #000000; padding:3px">');
$invoicequery = mysqli_query($con, "SELECT * FROM kmis_invoices WHERE invoice_staffid='$staffid'");
while ($invoicearray = mysqli_fetch_array($invoicequery)) {
echo(''.$invoicearray['invoice_overtime'].'');
}
echo('</td>
<td align="center" style="border:1px solid #000000; padding:3px">');
$invoicequery = mysqli_query($con, "SELECT * FROM kmis_invoices WHERE invoice_staffid='$staffid'");
while ($invoicearray = mysqli_fetch_array($invoicequery)) {
$invoicehours= $invoicearray['invoice_hours'];
$invoiceovertime= $invoicearray['invoice_overtime'];
$subtotal = ($invoicehours*$staffrate)+($invoiceovertime*$staffrate*1.5);
$subtotalformat = number_format((float)$subtotal, 2, '.', '');
echo('$'.$subtotalformat.'');
}
echo('</td>
</tr>');
}
echo('<tr>
<td align="center" style="border:1px solid #000000; padding:3px"></td>
<td align="right" style="border:1px solid #000000; padding:3px" colspan="4"><b>TOTAL DUE:</b></td>
<td align="center" style="border:1px solid #000000; padding:3px"><b>TOTAL</b></td>
</tr>
Вы можете видеть, что формула я использую для создания столбца субтотального использует четыре различных запросов - от счетов-фактур и от персонала. Некоторые сотрудники имеют разные ставки, поэтому промежуточный итог основан на данных, которые могут быть полностью разными для строк.
Я думаю, что ответ лежит в array_sum и с использованием массива для хранения всех $ subtotal, когда они заполнены, но я полностью в тупике.
Благодарим вас искренне. Пожалуйста, дайте мне знать, если вы хотите, чтобы я уточнил или помог сделать это более точным.
Я не совсем понимаю вашу проблему. Я дал ответ на ваши проблемы, поскольку мне кажется, что это очень просто. Хостинг, чтобы получить от вас отзыв –