Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.64 KB | None | 0 0
  1. array
  2.  
  3. session_start();
  4.  
  5. if(!isset($_SESSION['cesto'])){
  6. $_SESSION['cesto'] = array();
  7. }
  8.  
  9. // produtos
  10. $produtos = array(
  11. array(
  12. 'id' => 1,
  13. 'nome' => 'Lapis',
  14. 'preco' => 50
  15. ),
  16. array(
  17. 'id' => 2,
  18. 'nome' => 'Marcador',
  19. 'preco' => 20
  20. ),
  21. array(
  22. 'id' => 3,
  23. 'nome' => 'Borracha',
  24. 'preco' => 10
  25. ),
  26. array(
  27. 'id' => 4,
  28. 'nome' => 'Mochila',
  29. 'preco' => 200
  30. )
  31. );
  32.  
  33. // listar produtos
  34. foreach($produtos as $produto){
  35. print "<p>{$produto['nome']} ({$produto['preco']}) - <a href="?produto={$produto['id']}&a=adicionar">adicionar</a></p>";
  36. }
  37.  
  38. // cesto
  39. if(!empty($_SESSION['cesto'])){
  40. $total = 0;
  41. print "<strong>cesto (" . count($_SESSION['cesto']) . ")</strong><br>";
  42. foreach($_SESSION['cesto'] as $item => $detalhes){
  43. print $detalhes['nome'] . " x " . $detalhes['quantidade'] . "<br>";
  44. $total += $detalhes['quantidade'] * $detalhes['preco'];
  45. }
  46. print "<strong>total: </strong>" . number_format($total, 2);
  47. } else {
  48. print "<strong>cesto vazio</strong>";
  49. }
  50.  
  51. // adicionar itens ao carrinho
  52. if(isset($_GET['produto']) && isset($_GET['a'])){
  53. if($_GET['a'] == 'adicionar'){
  54. if(!empty($_SESSION['cesto'])){
  55. foreach($_SESSION['cesto'] as $item => $produto){
  56. if($item == $_GET['produto']){
  57. $_SESSION['cesto'][$item]['quantidade'] = $produto['quantidade'] + 1;
  58. break;
  59. } else {
  60. foreach($produtos as $produto){
  61. if($produto['id'] == $_GET['produto']){
  62. $_SESSION['cesto'][$produto['id']] = ['nome'=>$produto['nome'], 'preco'=>$produto['preco'], 'quantidade'=>1];
  63. break;
  64. }
  65. }
  66. }
  67. }
  68. } else {
  69. foreach($produtos as $produto){
  70. if($produto['id'] == $_GET['produto']){
  71. $_SESSION['cesto'][$produto['id']] = ['nome'=>$produto['nome'], 'preco'=>$produto['preco'], 'quantidade'=>1];
  72. }
  73. }
  74. }
  75. }
  76. }
  77.  
  78. $_SESSION['cart']['items'] = array(
  79. 'id' => 5, // código do produto
  80. 'title' => 'produto teste', // título/nome do produto
  81. 'selling_price' => 10.00 // preço de venda
  82. 'quantity' => 5 // quantiadde
  83. );
  84.  
  85. $_SESSION['produto'][10] = array(
  86. 'nome' => 'produto teste',
  87. 'preço' => 10.00,
  88. 'quantidade' => 5
  89. );
  90.  
  91. $_SESSION['cart'][20]['items'] = array(
  92. 'id' => 5, // código do produto
  93. 'title' => 'produto teste', // título/nome do produto
  94. 'selling_price' => 10.00 // preço de venda
  95. 'quantity' => 5 // quantiadde
  96. );
  97.  
  98. session_start();
  99.  
  100. //Cria o carrinho se não existir
  101. if (!isset($_SESSION['carrinho'])) {
  102. $_SESSION['carrinho'] = array();
  103. }
  104.  
  105. $carrinho = $_SESSION['carrinho'];
  106.  
  107. //Verifica se as variáveis vieram via POST, se for adiciona um novo item ao carrinho
  108. //NOTA: Recomendo validar essas variáveis, verificando se existem no banco ao invés de trazer tudo via post
  109. if (isset($_POST['produto'], $_POST['quantidade'])) {
  110. //Adiciona ao array, note que [] equivale ao array_push()
  111. $produtos[] = array(
  112. 'produto' => $_POST['produto'],
  113. 'quantidade' => (int) $_POST['quantidade']
  114. );
  115. }
  116.  
  117. //Salva na sessão
  118. $_SESSION['carrinho'] = $carrinho;
  119.  
  120. //Exibe produtos
  121. foreach ($carrinho as $item) {
  122. var_dump($item['produto'], $item['quantidade']);
  123. }
  124.  
  125. $qtdCarrinho = 0;
  126.  
  127. //Exibe produtos
  128. foreach ($carrinho as $item) {
  129. var_dump($item['produto'], $item['quantidade']);
  130. $qtdCarrinho += $item['quantidade'];
  131. }
  132.  
  133. var_dump($qtdCarrinho);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement