Clayton Postado Fevereiro 11, 2016 Denunciar Share Postado Fevereiro 11, 2016 Bom dia , como posso fazer para calcular o total geral de todas as compras efetuadas ou seja a soma de todos os subtotais, como faço isso ? $conn = conecta(); foreach ($_SESSION['shop'] as $id => $qtd) { $cart = $conn->prepare("SELECT * FROM produtos WHERE id=$id"); $cart->setFetchMode(PDO::FETCH_ASSOC); $cart->execute(); while ($linha = $cart->fetch()) { $foto = $linha['foto']; $nome = $linha['nome']; $descricao = $linha['descricao']; $tamanho = $linha['tamanho']; $cor = $linha['cor']; $preço = $linha['preço']; $linha['preço'] = str_replace(",",".",$linha['preço']); $sub = number_format($linha['preço'] * $qtd, 2, ',', '.'); $total += $preço; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 eiglimar Postado Fevereiro 11, 2016 Denunciar Share Postado Fevereiro 11, 2016 você quer fazer a soma de todos os produtos do seu carrinho? Se sim, você deve fazer um for ou como você fez ai um foreach para varrer todos os produtos e calcular o valor deles em uma variavel do carrinho que você iria guardar o total de produtos. Exemplo Digamos que você tem uma variavel array multidimensional que guarda o item e a quantidade preço e tal por exemplo vamos fazer alguns produtos: 3 produtos Refrigerante de Cola 3,99 cada um mas foram pedidos 2, Pão de Forma 1,99 cada um e foi pedido apenas um e Margarina 4,99 cada um e foi pedido 1 O Total deve ser R$14,96 desse carrinho até o momento, exemplo meio porco mas que você pode aplicar ao seu carrinho. $carrinho = array(array()); $carrinho[0]['nome'] = "Refrigerante de Cola"; $carrinho[0]['preco'] = 3.99; $carrinho[0]['qtd'] = 2; $carrinho[1]['nome'] = "Pão de forma"; $carrinho[1]['preco'] = 1.99; $carrinho[1]['qtd'] = 1; $carrinho[2]['nome'] = "Margarina"; $carrinho[2]['preco'] = 4.99; $carrinho[2]['qtd'] = 1; $carrinho['total'] = 0; foreach($carrinho as $value) { $carrinho['total'] += $value['preco'] * $value['qtd']; } print "<pre>"; print_r($carrinho); print "</pre>"; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Clayton Postado Fevereiro 11, 2016 Autor Denunciar Share Postado Fevereiro 11, 2016 (editado) no javascript é assim q faz o cálculo $(document).ready(function (e) { $('input').change(function (e) { id = $(this).attr('rel'); $index = this.value; $preço = $('font#preço'+id).html().replace("R$ ",''); console.log($preço); $val = ($preço*$index).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,');; $('font#sub'+id).html('R$ '+$val); clearInterval(timer); }); }); como fazer para somar todos os produtos do carrinho, o meu total é assim : $total += $linha['preço'] * $qtd; , mas não traz o total de todos, pode dar um exemplo?a minha dúvida onde implemento esse foreach q você falou , se já existe um foreach. O Observe a imagem e veja que no subtotal, eu tenho os preços separados eu queria somar todos os subtotais dos produtos que eu adicionar, para ter um total geral. Editado Fevereiro 11, 2016 por Clayton Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 eiglimar Postado Fevereiro 11, 2016 Denunciar Share Postado Fevereiro 11, 2016 cara para pegar o total dos subtotais basta somar todos os subtotais por exemplo acredito que esse seletor " $('font#preço'+id) " seja aonde está o preço coloque um name único em todos as tags de preço por exemplo name="subtotal[]" e ai quando você for processar num post, ficaria mais ou menos assim: $total = 0.0; if(isset($_POST['subtotal']) && !empty($_POST['subtotal'])) { $precos_subtotais = $_POST['subtotal']; // só coloquei em uma variavel para exemplificar melhor foreach($precos_subtotais as $valor) { $total += floatval($valor); //transformei em floatval para pegar os valores do POST que seriam strings para fazer a conta com o Double } } // vai sair o total de produtos que no exemplo que vc deu na foto seria:1494.00 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 eiglimar Postado Fevereiro 12, 2016 Denunciar Share Postado Fevereiro 12, 2016 (editado) Opa cara segue um exemplo de como você pode pegar o valor de valores em html com javascript e com um envio de formilario para o mesmo codigo para você poder processar o preço: <?php $total = 0.0; if(isset($_POST['total']) && !empty($_POST['total'])) { $precos_subtotais = $_POST['total']; // só coloquei em uma variavel para exemplificar melhor echo "<script>alert('O total é de '+".$precos_subtotais.");</script>"; } // vai sair o total de produtos que no exemplo que vc deu na foto seria:1494.00 ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Contador</title> </head> <body> <form action="seuarquivodecontroller.php" method="POST" accept-charset="utf-8"> <input type="hidden" name="total" id="total" value> <span class="preco">R$100,00</span> <span class="preco">R$100,00</span> <span class="preco">R$100,00</span> <span class="preco">R$100,00</span> <button type="submit" value="Enviar!"></button> </form> <script> var total = 0.0; var precos = document.getElementsByClassName("preco") for(i = 0; i < precos.length;i++) { var valor = precos[i].innerHTML valor = valor.replace("R$", ""); valor = valor.replace(",", "."); total += parseFloat(valor); } var pegaValorTotal = document.getElementById('total') pegaValorTotal.value = total; </script> </body> </html> Editado Fevereiro 12, 2016 por eiglimar Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Clayton Postado Fevereiro 13, 2016 Autor Denunciar Share Postado Fevereiro 13, 2016 Como eu chamo o javascript do total geral num input para exibir dentro de um echo $total_geral ? por exemplo o subtotal tá assim: echo '<td><div id="total" ><strong><font size="5" color="yellow" id="sub'.$linha['id'].'">R$ ' . $_SESSION['sub'] . '</font></strong></div></td>'; Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Clayton
Bom dia , como posso fazer para calcular o total geral de todas as compras efetuadas ou seja a soma de todos os subtotais, como faço isso ?
$conn = conecta();
foreach ($_SESSION['shop'] as $id => $qtd) {
$cart = $conn->prepare("SELECT * FROM produtos WHERE id=$id");
$cart->setFetchMode(PDO::FETCH_ASSOC);
$cart->execute();
while ($linha = $cart->fetch()) {
$foto = $linha['foto'];
$nome = $linha['nome'];
$descricao = $linha['descricao'];
$tamanho = $linha['tamanho'];
$cor = $linha['cor'];
$preço = $linha['preço'];
$linha['preço'] = str_replace(",",".",$linha['preço']);
$sub = number_format($linha['preço'] * $qtd, 2, ',', '.');
$total += $preço;
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.