I have table 'transaction_items' in my dtaabse that looks similar to this...
id | transaction_id | qty | unit_price |
---|---|---|---|
1 | 100 | 1 | 10.00 |
1 | 100 | 2 | 10.00 |
1 | 100 | 3 | 10.00 |
1 | 200 | 1 | 20.00 |
1 | 200 | 1 | 20.00 |
1 | 300 | 1 | 15.00 |
Current I fetch the data: $data['transaction_items'] = DB::table('transaction_items')->get();
and run a foreach loop:
foreach ($transaction_items as $trans) {
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> * WHOLE TRANSACTION TOTAL</td>
This outputs the data perfectly as you would expect. Though my last value (*WHOLE TRANSACTION TOTAL) of my output is running another a query and foreach loop to get the 'total' of the whole transaction.
<tr>
<td>
<?php
$totals = DB::table('transaction_items')->select('qty', 'unit_price')->where('transaction_id', '=', $trans->transaction_id)->get();
$ftot = 0;
foreach ($totals as $total) {
$ftot += $total->qty * $total->unit_price;
}
echo '£'.number_format($ftot, 2);
?>
</td>
</tr>
I know this is probably the wrong way of doing it, but that's why I am.
My current output looks like this...
transaction_id | qty | unit_price | Trans Total |
---|---|---|---|
100 | 1 | 10.00 | 60.00 |
100 | 2 | 10.00 | 60.00 |
100 | 3 | 10.00 | 60.00 |
200 | 1 | 20.00 | 40.00 |
200 | 1 | 20.00 | 40.00 |
300 | 1 | 15.00 | 15.00 |
I would like it to look like this, where it shows the total after the last row with the the same transaction_id.
transaction_id | qty | unit_price | Trans Total |
---|---|---|---|
100 | 1 | 10.00 | |
100 | 2 | 10.00 | |
100 | 3 | 10.00 | 60.00 |
200 | 1 | 20.00 | |
200 | 1 | 20.00 | 40.00 |
300 | 1 | 15.00 | 15.00 |
Hope this makes sense and thanks in advance.
source https://stackoverflow.com/questions/68603066/how-to-show-the-total-on-the-last-rows-with-same-value-laravel
Comments
Post a Comment