Add values from a php table

Asked

Viewed 49 times

0

I have a table that returns my orders of the day, it is working perfectly, but I would like to add a "summary" in it, with the sum of daily values (number of orders and total order value).

The step that returns the values is:

<td>R$ <?=$pedido->valor_pedido;?></td>

My table:

<table class="table table-stripped table-hover">
                    <thead>
                        <tr class="pedidos-dia">
                            <th width="50">Pedido</th>
                            <th>Cliente</th>
                            <th>Meio Pagamento</th>
                            <th>Valor Frete</th>
                            <th>Total Pedido</th>
                            <th>Situação</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php
                            if($pedido[0]->pagamento == "D") {
                                $valor_pedidos = $pedido[0]->valor_total_produtos - $pedido[0]->desconto;
                                $valor_final   = $valor_pedidos - ($valor_pedidos * 0.05) + $pedido[0]->frete;
                            } else {
                                $valor_final = $pedido[0]->valor_pedido;
                            }
                            ?>
                        <?php
                        if(count($pedidos) > 0){
                            foreach($pedidos as $pedido){
                                $totalHoje  += $valorCompra;
                        ?>
                        <tr onclick="window.location='<?=base_url();?>index.php/adm/pedidos/alterar/<?=$pedido->id;?>'" style="cursor:pointer" target='_blank'>

                            <td width="50"><?=$pedido->id;?></td>
                            <td class="pedidonome"><?=strtolower($pedido->nome ? $pedido->nome : $pedido->razao_social);?></td>
                            <td><?php echo getPagamento($pedido->pagamento);?></td>
                            <td>R$ <?=$pedido->frete;?></td>
                            <td>R$ <?=$pedido->valor_pedido;?></td>
                            <td><span class="<?=$pedido->situacao;?>"><?=$pedido->situacao;?></span></td>

                        </tr>
                        <?php 
                            }
                        } else {
                            ?>
                            <tr>
                                <td colspan="2">Não há pedidos hoje.</td>
                            </tr>
                            <?php
                        }
                        ?>                            
                    </tbody>
                </table>

1 answer

1

Create a variable to store this information outside your foreach, and for each order you run, add the amount, total value, and anything else you need.

Your code will look something like this:

<?php

$totalPedido = 0;

foreach ($pedidos as $pedido) {
    $totalPedido += $pedido->total_pedido;
}

//$totalPedido terá a somatória do atributo "total_pedido" a partir daqui...

Another alternative is to use array_reduce:

<?php

$totalPedido = array_reduce($pedidos, function($total, $pedido) {
    return $total + $pedido->total_pedido;
});

Browser other questions tagged

You are not signed in. Login or sign up in order to post.