Erro ao salvar carrinho no banco.
Olá pessoal estou com uma dificuldade em meu código de carrinho de compras. Recebo os produtos adiciono a quantidade e mais algumas informações como data desejada para entrega. Mas quando mando salvar ele salva somente os dados de um item o primeiro alguém poderia me ajudar? Creio que tenho que fazer um array e colocar Índice mas não sei como fazer.
meu arquivo do carrinho.php
meu arquivo do carrinho.php
<?php session_start(); if (empty($_SESSION[''''id''''])){ header(''''location:formLogon.php''''); } if(!isset($_SESSION[''''carrinho''''])){ $_SESSION[''''carrinho''''] = array(); } //adiciona produto if(isset($_GET[''''acao''''])){ //ADICIONAR CARRINHO if($_GET[''''acao''''] == ''''add''''){ $id = intval($_GET[''''id'''']); if(!isset($_SESSION[''''carrinho''''][$id])){ $_SESSION[''''carrinho''''][$id] = 1; } } //REMOVER CARRINHO if($_GET[''''acao''''] == ''''del''''){ $id = intval($_GET[''''id'''']); if(isset($_SESSION[''''carrinho''''][$id])){ unset($_SESSION[''''carrinho''''][$id]); } } //ALTERAR QUANTIDADE if($_GET[''''acao''''] == ''''up''''){ if(is_array($_POST[''''prod''''])){ foreach($_POST[''''prod''''] as $id => $qtd){ $id = intval($id); $qtd = intval($qtd); if(!empty($qtd) || $qtd <> 0){ $_SESSION[''''carrinho''''][$id] = $qtd; }else{ unset($_SESSION[''''carrinho''''][$id]); } } } } } ?> <!doctype html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <!-- Tema opcional --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"> <!-- Última versão JavaScript compilada e minificada --> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> <title>Itens</title> </head> <body> <?php include ''''nav.php''''; include ''''cabecalho.html''''; ?> <form action="carrinho.php" method="post"> <table > <tr> <input type="hidden" name="status" value="ATIVA"> <input type="hidden" name="cp" value="0"> </tr> </table> <?php require("config.php"); date_default_timezone_set(''''America/Cuiaba''''); if (isset($_POST[''''salvar''''])){ $ticket = uniqid(); $id_user = $_SESSION[''''id'''']; $status = $_POST[''''status'''']; $data = date(''''Y-m-d''''); $hora = date(''''H:i''''); $cp = $_POST[''''cp'''']; $atividade = $_POST[''''atividade'''']; $data_obra = $_POST[''''data_obra'''']; $quantidade = $_POST[''''quantidade'''']; $con = @mysql_pconnect("localhost", "root", ""); $bd = @mysql_select_db(''''supri'''', $con) or die("Erro ao acessar o banco!"); $comando = "insert into tbl_smo (ticket, solicitante, data, hora, status) VALUES (''''$ticket'''', ''''$id_user'''', ''''$data'''', ''''$hora'''', ''''$status'''')"; foreach($_SESSION[''''carrinho''''] as $ProdInsert => $qtd): $SqlInserirItens = mysql_query("INSERT INTO tbl_itens_smo (ticket, id_produto, quantidade, data_obra, atividade, cp) VALUES(''''$ticket'''', ''''$ProdInsert'''', ''''$quantidade'''', ''''$data_obra'''', ''''$atividade'''', ''''$cp'''')"); endforeach; mysql_query($comando) or die(mysql_error()); } ?> <div class="container-fluid"> <table class="table"> <caption> <br> </caption> <thead> <tr > <th width="722">Itens</th> <th width="95" >Quantidade</th> <th width="74" >Unidade</th> <th width="205" style="text-align: center" >Prazo da Obra</th> <th width="428" style="text-align: center">Serviço/Tarefa a Executar</th> <th width="133" style="text-align: center">Remover</th> </tr> </thead> <tfoot> <tr> <td colspan="5"><a href="novaSmo.php" style="font-family: Segoe, ''''Segoe UI'''', ''''DejaVu Sans'''', ''''Trebuchet MS'''', Verdana, sans-serif">Continuar adicionando...</a></td> </tfoot> <tbody> <?php if(count($_SESSION[''''carrinho'''']) == 0){ echo ''''<tr><td colspan="5">Não há produto no carrinho</td></tr>''''; }else{ require("config.php"); $total = 0; foreach($_SESSION[''''carrinho''''] as $id => $qtd){ $sql = "SELECT * FROM tbl_itens WHERE id= ''''$id''''"; $qr = mysql_query($sql) or die(mysql_error()); $ln = mysql_fetch_assoc($qr); $descricao = $ln[''''item'''']; $unidade = $ln[''''unidade'''']; echo ''''<tr bgcolor="#DDEEF1"> <td>''''.$descricao.''''</td> <td><input type="text" size="3" name="quantidade" value="''''.$qtd.''''" /></td> <td>''''.$unidade.''''</td> <td style="text-align: center"><input type="date" size="10" name="data_obra" /></td> <td style="text-align: center"><input type="text" size="40" name="atividade" /></td> <td style="text-align: center"><a href="?acao=del&id=''''.$id.''''">Remove</a></td> </tr>''''; } } ?> </tbody> </table> <p> <input class="btn btn-danger" type="submit" name="salvar" value="Salvar"/> <input class="btn btn-success" name="submit" type="submit" id="submit" formaction="fim.php" value="Concluir"> </p> </form> </div> </body> </html>
Manoel Vitor
Curtidas 0
Respostas
Nyl Guedes
27/10/2018
Olá pessoal estou com uma dificuldade em meu código de carrinho de compras. Recebo os produtos adiciono a quantidade e mais algumas informações como data desejada para entrega. Mas quando mando salvar ele salva somente os dados de um item o primeiro alguém poderia me ajudar? Creio que tenho que fazer um array e colocar Índice mas não sei como fazer.
meu arquivo do carrinho.php
meu arquivo do carrinho.php
<?php session_start(); if (empty($_SESSION[''''id''''])){ header(''''location:formLogon.php''''); } if(!isset($_SESSION[''''carrinho''''])){ $_SESSION[''''carrinho''''] = array(); } //adiciona produto if(isset($_GET[''''acao''''])){ //ADICIONAR CARRINHO if($_GET[''''acao''''] == ''''add''''){ $id = intval($_GET[''''id'''']); if(!isset($_SESSION[''''carrinho''''][$id])){ $_SESSION[''''carrinho''''][$id] = 1; } } //REMOVER CARRINHO if($_GET[''''acao''''] == ''''del''''){ $id = intval($_GET[''''id'''']); if(isset($_SESSION[''''carrinho''''][$id])){ unset($_SESSION[''''carrinho''''][$id]); } } //ALTERAR QUANTIDADE if($_GET[''''acao''''] == ''''up''''){ if(is_array($_POST[''''prod''''])){ foreach($_POST[''''prod''''] as $id => $qtd){ $id = intval($id); $qtd = intval($qtd); if(!empty($qtd) || $qtd <> 0){ $_SESSION[''''carrinho''''][$id] = $qtd; }else{ unset($_SESSION[''''carrinho''''][$id]); } } } } } ?> <!doctype html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <!-- Tema opcional --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"> <!-- Última versão JavaScript compilada e minificada --> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> <title>Itens</title> </head> <body> <?php include ''''nav.php''''; include ''''cabecalho.html''''; ?> <form action="carrinho.php" method="post"> <table > <tr> <input type="hidden" name="status" value="ATIVA"> <input type="hidden" name="cp" value="0"> </tr> </table> <?php require("config.php"); date_default_timezone_set(''''America/Cuiaba''''); if (isset($_POST[''''salvar''''])){ $ticket = uniqid(); $id_user = $_SESSION[''''id'''']; $status = $_POST[''''status'''']; $data = date(''''Y-m-d''''); $hora = date(''''H:i''''); $cp = $_POST[''''cp'''']; $atividade = $_POST[''''atividade'''']; $data_obra = $_POST[''''data_obra'''']; $quantidade = $_POST[''''quantidade'''']; $con = @mysql_pconnect("localhost", "root", ""); $bd = @mysql_select_db(''''supri'''', $con) or die("Erro ao acessar o banco!"); $comando = "insert into tbl_smo (ticket, solicitante, data, hora, status) VALUES (''''$ticket'''', ''''$id_user'''', ''''$data'''', ''''$hora'''', ''''$status'''')"; foreach($_SESSION[''''carrinho''''] as $ProdInsert => $qtd): $SqlInserirItens = mysql_query("INSERT INTO tbl_itens_smo (ticket, id_produto, quantidade, data_obra, atividade, cp) VALUES(''''$ticket'''', ''''$ProdInsert'''', ''''$quantidade'''', ''''$data_obra'''', ''''$atividade'''', ''''$cp'''')"); endforeach; mysql_query($comando) or die(mysql_error()); } ?> <div class="container-fluid"> <table class="table"> <caption> <br> </caption> <thead> <tr > <th width="722">Itens</th> <th width="95" >Quantidade</th> <th width="74" >Unidade</th> <th width="205" style="text-align: center" >Prazo da Obra</th> <th width="428" style="text-align: center">Serviço/Tarefa a Executar</th> <th width="133" style="text-align: center">Remover</th> </tr> </thead> <tfoot> <tr> <td colspan="5"><a href="novaSmo.php" style="font-family: Segoe, ''''Segoe UI'''', ''''DejaVu Sans'''', ''''Trebuchet MS'''', Verdana, sans-serif">Continuar adicionando...</a></td> </tfoot> <tbody> <?php if(count($_SESSION[''''carrinho'''']) == 0){ echo ''''<tr><td colspan="5">Não há produto no carrinho</td></tr>''''; }else{ require("config.php"); $total = 0; foreach($_SESSION[''''carrinho''''] as $id => $qtd){ $sql = "SELECT * FROM tbl_itens WHERE id= ''''$id''''"; $qr = mysql_query($sql) or die(mysql_error()); $ln = mysql_fetch_assoc($qr); $descricao = $ln[''''item'''']; $unidade = $ln[''''unidade'''']; echo ''''<tr bgcolor="#DDEEF1"> <td>''''.$descricao.''''</td> <td><input type="text" size="3" name="quantidade" value="''''.$qtd.''''" /></td> <td>''''.$unidade.''''</td> <td style="text-align: center"><input type="date" size="10" name="data_obra" /></td> <td style="text-align: center"><input type="text" size="40" name="atividade" /></td> <td style="text-align: center"><a href="?acao=del&id=''''.$id.''''">Remove</a></td> </tr>''''; } } ?> </tbody> </table> <p> <input class="btn btn-danger" type="submit" name="salvar" value="Salvar"/> <input class="btn btn-success" name="submit" type="submit" id="submit" formaction="fim.php" value="Concluir"> </p> </form> </div> </body> </html>
Conseguiu resolver seu problema?
GOSTEI 0