-
Total de itens
336 -
Registro em
-
Última visita
Leonardo Persan's Achievements
0
Reputação
Atualização de Status Simples
Veja todas atualizações de Leonardo Persan
-
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>
-
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]}')"); }
-
Bom dia Irmão. Obrigado pelas dicas consegui resolver.
-