Moran 0 Denunciar post Postado Novembro 28, 2011 E ai pessoa Boa Noite. Bom gostaria de saber como crio um laço onde eu somo os valores do produto. e a soma total dos produtos. <?php session_start(); include "../../cria-session/validar-session-usuario2.php"; include "../../config-db/config-db.php"; include "verifica-compra.php"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Carrinho de Compras</title> </head> <body> <table> <caption>Carrinho de Compras</caption> <tr> <th width="244">Produto</th> <th width="79">Quantidade</th> <th width="89">Preço</th> <th width="100">SubTotal</th> <th width="64">Remover</th> </tr> <tr> <td colspan="5"><a href="produtos2.php">Continuar Comprando</a></td> <tbody> <?php $query_rs_cliente = "SELECT * FROM cliente WHERE cliente.email_cli= '".$login_usuario."'"; $rs_cliente = mysql_query($query_rs_cliente, $conn) or die(mysql_error()); $row_rs_cliente = mysql_fetch_assoc($rs_cliente); $totalRows_rs_cliente = mysql_num_rows($rs_cliente); $id=$row_rs_cliente['id_cliente']; $query_rs_car = "SELECT * FROM carrinho WHERE cliente_id_cliente = '".$id."'"; $rs_car = mysql_query($query_rs_car, $conn) or die(mysql_error()); $row_rs_carrinho = mysql_fetch_assoc($rs_car); $totalrows_rs_car = mysql_num_rows($rs_car); $id_produto_carrinho=$row_rs_carrinho['produto_id_produtos']; if ($totalrows_rs_car >=0){ $query_rs_produto = "SELECT * FROM produto WHERE produto.id_produtos = '".$id_produto_carrinho."'"; $rs_produto = mysql_query($query_rs_produto, $conn) or die(mysql_error()); $row_rs_produto = mysql_fetch_assoc($rs_produto); $totalRows_rs_produto = mysql_num_rows($rs_produto); $total_compra = 0; while ($row_rs_carrinho = mysql_fetch_assoc($rs_car)){ $valor = $row_rs_produto['valor']; $quantidade = $row_rs_carrinho['quantidade']; $valor_produto = $valor * $quantidade; $total_compra = $valor_produto + $total_compra; $valor_produto = ' R$ ' . number_format($valor_produto, 2, ',', '.'); $total_compra = ' R$ ' . number_format($total_compra, 2, ',', '.'); echo $valor_produto;echo"-"; echo $total_compra; } } ?> </table> </body> </html> dessa maneira eu só estou fazendo o calculo de uma linha do banco. o que quero é tipo: Que se eu tiver 2 ou mais produtos, quero mostrar a quantidade do Item que o cliente tem no carrinho. e o total que o cliente tem que pagar. PRODUTO | QUANTIDADE | VALOR UNITARIO | VALOR TOTAL DO PRODUTO | --------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------- CANETA | 5 | 1,00 | 5,00 | CADERNO | 2 | 10,00 | 20,00 | ESTOJO | 1 | 20,00 | 20,00 | --------------------------------------------------------------------------------------- TOTAL: 45,00 Se alguem puder me explicar como eu posso fazer isso. Obs: a Quantidade de produtos(TABELA CARRINHO) e o Valor do produto(TABELA PRODUTO) estão em tabelas diferentes. Obrigado a todos que tentarem me judar. Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Novembro 29, 2011 estudo mais sobre sintaxe sql, estas suas pesquisas estão bastante improvisadas dá para fazer tudo em uma única query leia http://dev.mysql.com/doc/refman/4.1/pt/join.html acho que esse código resolve seu problema $query = "SELECT p.*, ( p.`valor` * ca.`quantidade` ) AS total_produto FROM `cliente` c INNER JOIN `carrinho` ca ON c.`email_cli` = ca.`cliente_id_cliente` INNER JOIN `produto` p ON ca.`produto_id_produtos` = p.`id_produtos` WHERE c.`email_cli` = '{$login_usuario}'"; $sql = mysql_query($query) or die(mysql_error()); $total = 0; while($linha = mysql_fetch_assoc($sql)){ ... ... $total += $linha['total_produto'];//soma o total a ser pago } print $total;//imprime o total Compartilhar este post Link para o post Compartilhar em outros sites
Moran 0 Denunciar post Postado Novembro 29, 2011 Concordo com tigo sobre as tabelas... vou dar uma olhada no que tu falo. vou testar agora o que tu sugeriu e ja dou o veridito bom ta me retornando o valor 0 Ainda não ta fazendo o que deveria fazer valeu Victor Cometti Victor, não sei se eu fiz, certo, eu apaguei a minha consulta e inseri a tua. apenas adaptei ao meu bando $query = "SELECT produto.*,( produto.`valor` * carrinho.`quantidade` ) AS total_produto FROM `cliente` cliente INNER JOIN `carrinho` carrinho ON cliente.`email_cli` = carrinho.`cliente_id_cliente` INNER JOIN `produto` produto ON carrinho.`produto_id_produtos` = produto.`id_produtos` WHERE cliente.`email_cli` = '{$login_usuario}'"; $sql = mysql_query($query) or die(mysql_error()); $total = 0; while($linha = mysql_fetch_assoc($sql)){ $total += $linha['total_produto'];//soma o total a ser pago } print $total;//imprime o total } Bom eu não entendi a parte do SQL AS (total_produto FROM) Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Novembro 29, 2011 significa que a multiplicação dos campos eu vou chamar de total_produto, e uma nova coluna vai ser criada na consulta com esse nome ( produto.`valor` * carrinho.`quantidade` ) AS total_produto tipo PRODUTO | QUANTIDADE | VALOR UNITARIO | total_produto | ------------------------------------------------------- CADERNO | 2 | 10,00 | 20,00 | agora em relação a retorna 0, somente se não achar nenhuma linha no banco, não testei essa query, pode ter algumm erro também vá no banco e faça a consulta diretamente e vê se te retorna alguma coisa, prefira sempre fazer a consulta diretamente no banco antes de utilizar na sua aplicação, em se tratando de uma query com um pequeno grau de complexidade SELECT p.*, ( p.`valor` * ca.`quantidade` ) AS total_produto FROM `cliente` c INNER JOIN `carrinho` ca ON c.`email_cli` = ca.`cliente_id_cliente` INNER JOIN `produto` p ON ca.`produto_id_produtos` = p.`id_produtos` Compartilhar este post Link para o post Compartilhar em outros sites
Moran 0 Denunciar post Postado Novembro 29, 2011 tudo ok no resultado. SELECT p . * , ( p.`valor` * ca.`quantidade` ) AS total_produto FROM `cliente` c INNER JOIN `carrinho` ca ON c.`email_cli` = ca.`cliente_id_cliente` INNER JOIN `produto` p ON ca.`produto_id_produtos` = p.`id_produtos` LIMIT 0 , 30 E então, o que fazer ??? não achou nenhum resgitro MySQL retornou um conjunto vazio (ex. zero registros). ( Consulta levou 0.0006 segundos ) e seu eu faço assim: SELECT p.*, ( p.`valor` * ca.`quantidade` ) AS total_produto FROM `cliente` c INNER JOIN `carrinho` ca ON c.`email_cli` = ca.`cliente_id_cliente` INNER JOIN `produto` p ON ca.`produto_id_produtos` = p.`id_produtos` WHERE c.`email_cli` = '5' se eu definir o valor da pesquisa, ele tambem não acha o registro que eu tenho. Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Novembro 29, 2011 a parte do banco está ok, coloque o where... na query e faça no php agora só imprimir os resultados dentro do while e somando os total geral como mencionado no post 3 #3 Compartilhar este post Link para o post Compartilhar em outros sites
Moran 0 Denunciar post Postado Novembro 29, 2011 bom cara resolvi o problema, tinha o nome de uma coluna errado. Valeu pela ajuda. vou aporender a usar o JOIN Bom, agora tenho que ver como vou fazer para mostrar o valor total de cada produto. Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Novembro 29, 2011 valor total de cada produto você vai pegar utilizando a coluna total_produto feita nessa parte da query ( p.`valor` * ca.`quantidade` ) AS total_produto poste como ficou seu código Compartilhar este post Link para o post Compartilhar em outros sites
Moran 0 Denunciar post Postado Novembro 29, 2011 Pois eu percebi isso. mas o cliente vai digitar a quantidade do carrinho ai queri quero mostra o Preço do produto e o preço multiplicado pela quantidade.. Valeu pela ajuda Victor Compartilhar este post Link para o post Compartilhar em outros sites
Moran 0 Denunciar post Postado Novembro 29, 2011 cara agora que zerei o meu carrinho, que percebi, que se eu não tiver nada no banco. ele me mostra o valor 2.1 de total. Se tu poder me dar mais essa ajuda .. abração. Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Novembro 30, 2011 posta o código Compartilhar este post Link para o post Compartilhar em outros sites
Moran 0 Denunciar post Postado Novembro 30, 2011 bah cara. acho que foi viage minha. Desculpa o encomodo. Abusando ainda mais da tua paciencia e sabedoria para mostrar a quantidade de produtos, determinado produto que possui no carrinho terei que fazer um outro SELECT e um outro WHILE ? Valeu Victor Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Novembro 30, 2011 SELECT p.*, ( p.`valor` * ca.`quantidade` ) AS total_produto, ca.`quantidade` --seleciona quantidade na tabela carrinho ..... Compartilhar este post Link para o post Compartilhar em outros sites