Ir para conteúdo
Fórum Script Brasil

Leonardo Persan

Membros
  • Total de itens

    336
  • Registro em

  • Última visita

Respostas em Status postados por Leonardo Persan

  1. Bom dia Leonardo Tudo Certo?

    Estou com uma dificuldade e já não sei mais oque posso fazer meu conhecimento chegou ate o limite não sei como dar sequencia no meu projeto tive que refazer meu carrinho por diversos problemas. 

    O problema é que ele me mostra os dados edito colocando as informações que eu preciso ele salva com os produtos que escolhi mas a data_obra, quantidade e atividade ele só salva com as informações de um produto guardando a mesma para todos os outros.

    Pesquisei e estudei alguns casos e vi que tenho que criar um array com um indice e depois guardar no banco mas não sei como fazer poderia me dar uma ajuda?

    abaixo meu codigo

     

    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>

     

    1. Leonardo Persan

      Leonardo Persan

      Bom dia, desculpa a demora

      Você está fazendo um array para guardar os id dos produtos ($_SESSION['carrinho']), até aqui perfeito.

      O problema é que as informações de quantidade e data_obra, etc não são arrrays

      <input type="date" size="10" name="data_obra" /> <!-- name="data_obra" -->

      Para ser um array deveria ser assim

      <input type="date" size="10" name="data_obra[]" />

      Mas dessa forma a variável $_POST['data_obra'] será tipo:

      <?php
      $_POST['data_obra'] = array(
        0 => '10/10/2018',
        1 => '09/10/2018',
        //...
      );

      E ai você tem que "chutar" que o id 0 é o primeiro item dentro de $_SESSION['carrinho'] e por ai vai, mas se você fizer assim

      <?php
      foreach ($_SESSION['carrinho'] as $id => $qtd) {
        //...
        echo '<input type="date" size="10" name="data_obra['.$id.']" />';
        //...
      }

      O $_POST['data_obra'] será tipo assim:

      <?php
      $_POST['data_obra'] = array(
        132 => '10/10/2018',
        15 => '09/10/2018',
        //Supondo que esses sejam ids válidos no seu banco
      );

      Logo o seu INSERT pode ficar como algo do tipo:

      <?php
      foreach($_SESSION['carrinho'] as $id => $qtd) {
        $SqlInserirItens = mysql_query("INSERT INTO tbl_itens_smo (ticket, id_produto,  quantidade, data_obra, atividade, cp) VALUES('$ticket', '$id', '{$_POST['quantidade'][$id]}', '{$_POST['data_obra'][$id]}', '{$_POST['atividade'][$id]}', '{$_POST['cp'][$id]}')");
      }

       

    2. (Veja1 outra respposta para esta atualização de status)

×
×
  • Criar Novo...