Fórum Erro ao salvar carrinho no banco. #598234
27/10/2018
0
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
Curtir tópico
+ 0
Responder
Posts
21/08/2020
Nyl Guedes
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?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)