Ir para conteúdo
Fórum Script Brasil
  • 0

Calcular os subtotais


Clayton

Pergunta

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

  • 0

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>";

 

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

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.

1.thumb.png.b51880a4cf6306bf566b1f1f3ef5O

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 por Clayton
Link para o comentário
Compartilhar em outros sites

  • 0

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

 

Link para o comentário
Compartilhar em outros sites

  • 0

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 por eiglimar
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...