Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Moran

Laço em duas tabelas.

Recommended Posts

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

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

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

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.