Erro ao salvar carrinho no banco.

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
<?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

Manoel Vitor

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
<?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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar