Skip to main content

How to show the total on the last rows with same value? (Laravel)

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 '&pound;'.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