Ir para conteúdo

Arquivado

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

David Ramires

Agora usando Sessão

Recommended Posts

beleza Galera... vou postar aqui uma parte do meu código, ai vamos discutindo... ok

Gravar na Sessão

if($dadocar == "incluir"){  if (isset($_SESSION['carrinho'])) {	if (array_key_exists($cod_prod, $_SESSION['carrinho'])) {	   $_SESSION['carrinho'][$cod_prod][$nomeproduto][$valor_uni]['qtde'] = $qtde;	  } else {	   $_SESSION['carrinho'][$cod_prod][$nomeproduto][$valor_uni]['qtde'] = $qtde;	  }   } else {   		  $_SESSION['carrinho'][$cod_prod][$nomeproduto][$valor_uni]['qtde'] = $qtde;   }}

Listando os Produtos do Carrinho

<table border="0" width="80%" cellpadding="0" cellspacing="0" align="center"><tr bgcolor="whitesmoke"><td><strong>Quantidade</strong></td><td><strong>Nome do Produto</strong></td><td><strong>Valor Unitário</strong></td><td><strong>Subtotal</strong></td></tr><?if(!empty($_SESSION['carrinho'])){ foreach ($_SESSION['carrinho'] as $chave => $valor) {   foreach($valor as $c => $v) {	 	foreach($v as $d => $r){		   echo "<tr><td>".$r['qtde']."</td>";		   echo '<td>' . $c . '</td>';		   echo '<td><b>R$</b> '.number_format($d, 2, ',', '.').'</td>';		   echo '<td><b>R$</b> '.number_format($d*$r['qtde'], 2, ',', '.').'</td>';	  }	}  }}?>
acho que coloquei tudo... qualquer coisa me avisem...ai vamos ver quais são as alterações para fazer o resto..... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

alguem poderia me explicar melhor a parte em vermelho nao entendi como funciona

Gravar na Sessão

if($dadocar == "incluir"){  if (isset($_SESSION['carrinho'])) {	if (array_key_exists($cod_prod, $_SESSION['carrinho'])) {	   [color="#FF0000"]$_SESSION['carrinho'][$cod_prod][$nomeproduto][$valor_uni]['qtde'] = $qtde[/color];	  } else {	   [color="#FF0000"]$_SESSION['carrinho'][$cod_prod][$nomeproduto][$valor_uni]['qtde'] = $qtde[/color];	  }   } else {   		 [color="#FF0000"] $_SESSION['carrinho'][$cod_prod][$nomeproduto][$valor_uni]['qtde'] = $qtde;[/color]   }}
valeu

alguem poderia me explicar melhor a parte em vermelho nao entendi como funciona

Gravar na Sessão

if($dadocar == "incluir"){  if (isset($_SESSION['carrinho'])) {	if (array_key_exists($cod_prod, $_SESSION['carrinho'])) {	   [color="#FF0000"]$_SESSION['carrinho'][$cod_prod][$nomeproduto][$valor_uni]['qtde'] = $qtde[/color];	  } else {	   [color="#FF0000"]$_SESSION['carrinho'][$cod_prod][$nomeproduto][$valor_uni]['qtde'] = $qtde[/color];	  }   } else {   		 [color="#FF0000"] $_SESSION['carrinho'][$cod_prod][$nomeproduto][$valor_uni]['qtde'] = $qtde;[/color]   }}
valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Fabyo..... essa era minha idéia quando comecei a montar o carrinho de compras(até que no outro tópico que criei, eu tinha citado que gostaria de fazer com BD...... ai o que eu quis fazer....como teve pessoas que falaram... " Faz com Cookie, Faz com Sessão, Faz com BD, resolvi ver todos os jeitos e como poderia fazer.... :rolleyes: Bom até agora, pelas minhas pesquisas, pelo tempo que fiquei montando o carrinho com cookie ( e com sessão vai ver tão diferente) ... Acho que usar BD, vai dar menos trabalho, pq ter que ficar percorrendo array, grava no cookie, busca no cookie, se eu tivesse feito com BD e Sessão ia ser menos trabalhoso......o que você acha ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas voce nao entendeu banco de dados que eu falei é para guardar os produtos, preços, categorias etc.

e nao para salvar os produtos

 

um carrinho de compras faz parte de um sistema ecommerce ou seja loja virtual e essa loja precisa ter produtos para oferecer, e esses produtos ficam em banco de dados, dai o usuario entra escolhe o que quer a quantidade e compra

 

por isso que falei usando session ou cookie guarde só o id do produto assim facilita mais e você tem um controle melhor do produto e das informações

Compartilhar este post


Link para o post
Compartilhar em outros sites

deixa que ver se entendi mesmo... :!:

será muito mais fácil não conter uma tabela:

 

tb_carrinho

id_cliente_fkid_prod_fkqtddata
... pois o principal estou guardando no cookie ou sessão(id, qtd) certo...

bom ai quando eu quiser ver o que a pessoa tem no carrinho, eu procuro na tabela Produtos o ID que será forncecido pela sessão ou cookie....... livrando - se de uma tabela.... é isso ? :rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

a ideia é o seguinte voce possui um:

* banco de dados

* seus produtos estao cadastrados nele

e basicamente voce teria :

 

* cod do produto

* nome do produto

* categoria

* preço

 

entao essas informações voce ja tem, pra que gravar tudo de novo na session ou cookie?, do jeito que voce ta fazendo voce ta gravando e enchendo a session com informações a toa , sendo que elas estao no banco e de facil acesso, voce guardando só os id na session no final da compra voce pega os produtos corretamente e monta o pedido

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza... entendi sim.......

 

é verdade.. eu nem preciso de uma tabela para o carrinho...

oh... como eu fiz tudo até agora com cookie......vou pegar todas as dicas que você me passou, vou adaptar meu script.. mas antes tem como se ver como eu fiz o carrinho todo com cookie, para ver se eu esqueci de alguma coisa http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

eu postei todo o script de 2 formas...

 

uma o código está de forma procedural

e a outra montei uma classe bem simples..

Ver Carrinho com Cookies

 

tem como ? http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, como faço para atualizar valores de uma sessão ? não consegui...oh minha sessão foi criada assim:

$_SESSION['carrinho'][$cod_prod][$nomeproduto][$valor_uni]['qtde'] = $qtde;

bom no caso eu teria que atualizar assim:
$_SESSION['carrinho'][$cod_prod][$nomeproduto][$valor_uni]['qtde'] = 15;
ou
$_SESSION['carrinho'][$cod_prod]['qtde'] = 15;
acho que está tudo errado... pq nada funcionou...oh na hora de atualizar um cookie tenho que colocar o mesmo parâmetros que usei para cria - lo certo.. e sessão como funciona, procurei mas num achei nada parecido com meu caso... valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera consegui assim oh.

$_SESSION['carrinho'][$cod_prod][$nomes][$valores][qtde] = $val;

eu acho que estava esquendo alguma coisa..... vou terminar aqui eu postar como ficou..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal acho que consegui fazer alguma coisa... :lol:

INSERIR NO CARRINHO

if (isset($_SESSION['carrinho'])) {	   if (array_key_exists($cod_prod, $_SESSION['carrinho'])) {		   $_SESSION['carrinho'][$cod_prod][$nomeproduto][$valor_uni]['qtde'] = $qtde;	   } else {		   $_SESSION['carrinho'][$cod_prod][$nomeproduto][$valor_uni]['qtde'] = $qtde;	   }   } else {		   $_SESSION['carrinho'][$cod_prod][$nomeproduto][$valor_uni]['qtde'] = $qtde;  }

VISUALIZAR CARRINHO

if(!empty($_SESSION['carrinho'])){ $cont = 0; $i=0; foreach ($_SESSION['carrinho'] as $chave => $valor) {   $varID[$i]= $chave; ?>  <form name='tabela' method='post' action='<? $PHP_SELF ?>'>  <?  foreach($valor as $c => $v) {	 	foreach($v as $d => $r){		   //echo '<tr><td>' . $r['qtde'] . '</td>';		   echo "<tr><td>$varID[$i]<input name='qtdnovo[$varID[$i]]' type='text'  size='4' value=".$r['qtde']."></td>";		   echo '<td>' . $c . '</td>';		   echo '<td><b>R$</b> '.number_format($d, 2, ',', '.').'</td>';		   echo '<td><b>R$</b> '.number_format($d*$r['qtde'], 2, ',', '.').'</td>';		   echo "<td align='center'><a href=vercarrinho.php?idexluir=$varID[$i]>Excluir</a></td></tr>";			 $ramires[$cont++] = array("id"=>$varID[$i], "nome"=>$c, "valor"=>$d); $i++;		   $total += $subtot;	  }	}    } $serirms  = serialize($ramires); echo "<input type='hidden' name='arrayrms' value='$serirms'>";}

OBS: Está parte de visualizar o carrinho, está adaptado para meu script(com tabelas, botões etc...)

ATUALIZAR NO CARRINHO

if($_POST['botao'] == "Atualizar Carrinho"){ $itens = str_replace("\\", "", $_POST['arrayrms']);  $qtd = $_POST['qtdnovo'];  $produtos = unserialize($itens);	foreach($qtd as $cod_prod => $val){	   foreach($produtos as $array){		$ids = $array[id];		$nomes = $array[nome];		$valores = $array[valor];	  if($cod_prod == $ids){		 $_SESSION['carrinho'][$cod_prod][$nomes][$valores][qtde] = $val;	   }	 }   }}

EXCLUIR ITEM DO CARRINHO

if($_GET['idexluir']){  $dadoidex = $_GET['idexluir']; if (isset($_SESSION['carrinho'])) {   foreach ($_SESSION['carrinho'] as $chave => $valor) {	 foreach($valor as $c => $v) {	 	foreach($v as $d => $r){			 unset($_SESSION[carrinho][$dadoidex]);		}	  }	}  }}

LIMPAR CARRINHO

foreach ($_SESSION['carrinho'] as $chave => $valor) {	 foreach($valor as $c => $v) {	 	foreach($v as $d => $r){			 unset($_SESSION[carrinho]);		}	}  }
também fiz um carrinho de compras usando cookies

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal acho que consegui fazer alguma coisa... :lol:

 

INSERIR NO CARRINHO

if (isset($_SESSION['carrinho'])) {	   if (array_key_exists($cod_prod, $_SESSION['carrinho'])) {		   $_SESSION['carrinho'][$cod_prod][$nomeproduto][$valor_uni]['qtde'] = $qtde;	   } else {		   $_SESSION['carrinho'][$cod_prod][$nomeproduto][$valor_uni]['qtde'] = $qtde;	   }   } else {		   $_SESSION['carrinho'][$cod_prod][$nomeproduto][$valor_uni]['qtde'] = $qtde;  }

VISUALIZAR CARRINHO

if(!empty($_SESSION['carrinho'])){ $cont = 0; $i=0; foreach ($_SESSION['carrinho'] as $chave => $valor) {   $varID[$i]= $chave; ?>  <form name='tabela' method='post' action='<? $PHP_SELF ?>'>  <?  foreach($valor as $c => $v) {	 	foreach($v as $d => $r){		   //echo '<tr><td>' . $r['qtde'] . '</td>';		   echo "<tr><td>$varID[$i]<input name='qtdnovo[$varID[$i]]' type='text'  size='4' value=".$r['qtde']."></td>";		   echo '<td>' . $c . '</td>';		   echo '<td><b>R$</b> '.number_format($d, 2, ',', '.').'</td>';		   echo '<td><b>R$</b> '.number_format($d*$r['qtde'], 2, ',', '.').'</td>';		   echo "<td align='center'><a href=vercarrinho.php?idexluir=$varID[$i]>Excluir</a></td></tr>";			 $ramires[$cont++] = array("id"=>$varID[$i], "nome"=>$c, "valor"=>$d); $i++;		   $total += $subtot;	  }	}    } $serirms  = serialize($ramires); echo "<input type='hidden' name='arrayrms' value='$serirms'>";}

OBS: Está parte de visualizar o carrinho, está adaptado para meu script(com tabelas, botões etc...)

ATUALIZAR NO CARRINHO

if($_POST['botao'] == "Atualizar Carrinho"){ $itens = str_replace("\\", "", $_POST['arrayrms']);  $qtd = $_POST['qtdnovo'];  $produtos = unserialize($itens);	foreach($qtd as $cod_prod => $val){	   foreach($produtos as $array){		$ids = $array[id];		$nomes = $array[nome];		$valores = $array[valor];	  if($cod_prod == $ids){		 $_SESSION['carrinho'][$cod_prod][$nomes][$valores][qtde] = $val;	   }	 }   }}

EXCLUIR ITEM DO CARRINHO

if($_GET['idexluir']){  $dadoidex = $_GET['idexluir']; if (isset($_SESSION['carrinho'])) {   foreach ($_SESSION['carrinho'] as $chave => $valor) {	 foreach($valor as $c => $v) {	 	foreach($v as $d => $r){			 unset($_SESSION[carrinho][$dadoidex]);		}	  }	}  }}

LIMPAR CARRINHO

foreach ($_SESSION['carrinho'] as $chave => $valor) {	 foreach($valor as $c => $v) {	 	foreach($v as $d => $r){			 unset($_SESSION[carrinho]);		}	}  }
também fiz um carrinho de compras usando cookies clique aqui para ver o carrinho com cookie ....

 

agora estou fazendo melhorias no script, depois de algumas sugestões, dicas, pesquisas.......

achei uma outra maneira mais fácil de fazer o carrinho sem ter que ficar fazedo vários loops... depois vou postar no link citado acima.... okay...... espero cometários de todos...

http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

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.