Ir para conteúdo

rodolfo_alves

Members
  • Total de itens

    3
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre rodolfo_alves

  1. rodolfo_alves

    Gravar dados de uma lista de session em um bd. ex.: Carrinho de Compras

    Alguém poderia me dar uma força no entendimento desta questão, desde já fico agradecido.
  2. rodolfo_alves

    Gravar dados de uma lista de session em um bd. ex.: Carrinho de Compras

    Olá, infelizmente não consegui... Fiz o mesmo exemplo é um código menor, para um melhor entendimento. <?php session_start(); if(!isset($_SESSION['itens'])){ $_SESSION['itens'] = array(); } if(isset($_GET['acao'])){ $id = $_GET['id']; if($_GET['acao'] == 'add'){ if(!isset($_SESSION['itens'][$id])){ $_SESSION['itens'][$id] = 1; }else{ $_SESSION['itens'][$id] += 1; } } //REMOVER CARRINHO if($_GET['acao'] == 'del'){ $id = intval($_GET['id']); if(isset($_SESSION['itens'][$id])){ unset($_SESSION['itens'][$id]); } } } ?> <form method="post" action="carrinho.php"> <table style="width: 900px"> <tr> <td>ID</td> <td>Produto</td> <td>Qtd Disponível</td> <td>Qtd Desejada</td> <td>Valor</td> <td>Sub-Total</td> <td>Excluir</td> </tr> // EXIBE O CARRINHO <?php if(count($_SESSION['itens']) == 0){ echo '<tr><td colspan="5">Não há produto no carrinho</td></tr>'; }else{ require_once('db.class.php'); $objDb = new db(); $link = $objDb -> conecta_mysql(); $total = 0; foreach($_SESSION['itens'] as $idProdutos => $quantidade){ $sql = "SELECT * FROM testando WHERE id= '$idProdutos'"; $qr = mysqli_query($link, $sql) or die(mysql_error()); $ln = mysqli_fetch_assoc($qr); $id = $ln['id']; $nome = $ln['produto']; $qtd_disponivel = $ln['qtd']; $preco = $ln['valor']; $subTotal = $ln['valor'] * $quantidade; ?> <tr> <td><input type="hidden" name="idProd" value="<?= $id; ?>"><?= $id; ?></td> <td><input type="hidden" name="nome" value="<?= $nome; ?>"><?= $nome; ?></td> <td><?= $qtd_disponivel; ?></td> <td><input type="number" name="qtd_escolhida" value="<?= $quantidade; ?>" min="1" max="<?= $qtd_disponivel; ?>"></td> <td><input type="hidden" name="preco" value="<?= $preco; ?>"><?= number_format($preco,2,",", "."); ?></td> <td><input type="hidden" name="subTotal" value="<?= $subTotal; ?>"><?= number_format($subTotal,2,",", "."); ?></td> <td><a href="carrinho.php?acao=del&id=<?= $idProdutos?>">Excluir</a></td> </tr> <?php } } ?> <? if(isset($_POST['enviar'])){ require_once('db.class.php'); isset($_SESSION['itens']); foreach ($_SESSION['itens'] as $indice => $valor) { require_once('db.class.php'); $objDb = new db(); $link = $objDb -> conecta_mysql(); $sql_insere = "INSERT INTO salvando(nome, qtd_escolhida, valor, subTotal) VALUES('$nome', '$quantidade', '$idProdutos', '$idProdutos')"; $inserido = mysqli_query($link, $sql_insere); } } ?> </table> <input type="submit" value="enviar" name="enviar"> </form> Sendo que o modo que fiz foi dessa forma, dessa forma ele consegue pegar o valor do ID e da Quantidade de Sessões, todavia só salva valores repetidos. <? if(isset($_POST['enviar'])){ require_once('db.class.php'); isset($_SESSION['itens']); foreach ($_SESSION['itens'] as $indice => $valor) { require_once('db.class.php'); $objDb = new db(); $link = $objDb -> conecta_mysql(); $sql_insere = "INSERT INTO salvando(nome, qtd_escolhida, valor, subTotal) VALUES('$nome', '$quantidade', '$preco', '$subTotal')"; $inserido = mysqli_query($link, $sql_insere); } }
  3. Olá pessoas, sou novato em PHP, estou estudando a linguagem e ao mesmo tempo tentando criar algo com o que aprendi. Quando tenho dúvidas procuro na net, tópicos e ou scripts já prontos que me façam entender. Todavia desta vez não encontrei algo claro. Estou criando um mini sistema de vendas, do qual me permite adicionar uma lista de itens. Daí está o problema, como não tenho um conhecimento avançado de arrays não estou sabendo pegar os dados da lista criada e passar para o BD. Só consigo passar a última informação criada na lista. Aqui está o exemplo. <?php // inicio consulta url if(!isset($_SESSION['itens'])){ $_SESSION['itens'] = array(); } if(isset($_GET['acao'])){ $id = $_GET['id']; // Adiciona ao carrinho if($_GET['acao'] == 'add'){ if(!isset($_SESSION['itens'][$id])){ $_SESSION['itens'][$id] = 1; }else{ $_SESSION['itens'][$id] += 1; } } // Diminui carrinho if($_GET['acao'] == 'dim'){ if(!isset($_SESSION['itens'][$id])){ $_SESSION['itens'][$id] = 1; }else{ if($_SESSION['itens'][$id] > 1) $_SESSION['itens'][$id] -= 1; } } //deleta item do carrinho if($_GET['acao'] == 'del'){ $id = intval($_GET['id']); if(isset($_SESSION['itens'][$id])){ unset($_SESSION['itens'][$id]); } } } // fim consulta url // inicio consulta para adicionar if(count($_SESSION['itens']) == 0){ ?> <br> <div class="alert alert-danger alert-dismissible"> <button type="button" class="close" data-dismiss="alert">&times;</button> <strong>LISTA VAZIA:</strong> Para adicionar produtos/servicos realize a busca. </div> <br> <?php }else{ require_once('db.class.php'); $objDb = new db(); $link = $objDb -> conecta_mysql(); $total = 0; foreach ($_SESSION['itens'] as $idProdutos => $quantidade) { $sql = "SELECT * FROM produtos WHERE id='$idProdutos'"; $consultado = mysqli_query($link, $sql) or die(mysql_error()); $linha = mysqli_fetch_array($consultado); $id = $linha['id']; $codigo = $linha['codigo']; $produto = $linha['produto']; $quantidade_disp = $linha['qtd']; $valor = $linha['valor']; $subTotal = $linha['valor'] * $quantidade; $total += $linha['valor'] * $quantidade; ?> <tr> <td><input type="hidden" name="codigo_produto" value=""><?= $codigo; ?></td> <td><input type="hidden" name="nome_produto" value=""><?= $produto; ?></td> <td><input type="hidden" name="qtd_produto" value=""><?= $quantidade_disp; ?></td> <td> <a href="gerar_pedidos_admin.php?acao=dim&id=<?= $id; ?>"><span class="glyphicon glyphicon-minus" style="color: red"></span></a> <input type="number" name="qtd_produto1" min="1" max="<?= $quantidade_disp; ?>" value="<?= $quantidade; ?>"> <a href="gerar_pedidos_admin.php?acao=add&id=<?= $id; ?>"><span class="glyphicon glyphicon-plus" style="color: green"></span></a> </td> <td><input type="hidden" name="valor_produto" value="">R$ <?= number_format($valor,2,",", "."); ?></td> <td>R$ <?= number_format($subTotal,2,",", ".");?></td> <td><a href="gerar_pedidos_admin.php?acao=del&id=<?= $id; ?>"><span class="glyphicon glyphicon-remove" style="color: red;"></span></a></td> </tr> <?php } ?> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td><label>Total</label><br>R$ <input type="hidden" name="total_pedido" value=""><?= number_format($total,2,",", ".");?></td> </tr> <?php } ?> A pergunta e dúvida é como posso pegar os dados da lista e adicionar ao BD. Eu sei que é para usar um foreach ou um while, todavia só consigo passar a última informação da lista de modo repetido. Gostaria de uma ajuda. Não precisa faz de acordo com o meu código, gostaria de um exemplo prático. Abçs.
×

Informação importante

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