look4game 0 Denunciar post Postado Agosto 30, 2004 Para cada produto tenho um peso, para que seja possível calcular o preço dos portes. O problema é que ele n me calcula o peso direito. Adicionei um produto que pesa 1Kg e outro que pesa 0,2Kg, e obtive um total de 0,2Kg. Adicionei 3 produtos que pesam 1Kg e obtive 6Kg :huh: Presumo que o erro esteja aqui: PHP [/tr][tr]$this->peso += $this->items[$produto->id] * $produto->peso;[/tr] ... aqui fica a função que calcula o total inteira ... PHP [/tr][tr] function calcular_total() { $this->subtotal = 0; $this->portes = 0; $in_clause = $this->lista_idprodutos(); if (empty($in_clause)) { return; } $qid = db_query("SELECT id, preco, peso FROM produtos WHERE id IN ($in_clause)"); while ($produto = db_fetch_object($qid)) { $this->subtotal += $this->items[$produto->id] * $produto->preco; $this->peso += $this->items[$produto->id] * $produto->peso; } }[/tr] Poderiam-me ajudar sff? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Agosto 30, 2004 Grava o id do produto e quantidade só na session, se for session q tiver usando e depois na parte de calcular, resgata do banco de dados os produtos com base na id e ai calcula, apenas um modo.Flwwwwwww Compartilhar este post Link para o post Compartilhar em outros sites
look4game 0 Denunciar post Postado Agosto 30, 2004 Sim, estou a usar session, mas não compreendi bem o que fazer. Tentei o seguinte, mas não funcionou, n sei se falavas mais ou menos disto: PHP [/tr][tr]while ($prod = db_fetch_object($qid)) { $quantidade = $SESSION["carrinho"]->items[$prod->id]; $total = $prod->preco * $quantidade; $pesototal = $prod->peso * $quantidade[/tr] .. e depois devia somar o pesototal de cada série de produtos, e só aí ultiplicava pelo valor dos portes, certo? Mas como fazer isso? Compartilhar este post Link para o post Compartilhar em outros sites
look4game 0 Denunciar post Postado Agosto 31, 2004 Problema resolvido... bastou criar uma nova função: PHP [/tr][tr] function calcular_peso() { $this->peso = 0; $in_clause = $this->lista_idprodutos(); if (empty($in_clause)) { return; } $qid = db_query("SELECT id, peso FROM produtos WHERE id IN ($in_clause)"); while ($produto = db_fetch_object($qid)) { $this->peso += $this->items[$produto->id] * $produto->peso; } } [/tr] Compartilhar este post Link para o post Compartilhar em outros sites