getConnection(); // --- LISTE SELECT --- $matrici = $pdo->query("SELECT id, nome FROM matrice ORDER BY nome")->fetchAll(); $mescole = $pdo->query("SELECT id, nome FROM mescole ORDER BY nome")->fetchAll(); $linee = $pdo->query("SELECT id, line_number, name FROM production_lines ORDER BY line_number")->fetchAll(); $clienti = $pdo->query("SELECT id, nome FROM clients ORDER BY nome")->fetchAll(); $status_list = $pdo->query("SELECT id, nome, badge_color, line_color FROM production_status ORDER BY ordinamento, nome")->fetchAll(); function selectOptions($arr, $sel = null, $val = 'id', $txt = 'nome') { $opt = ''; foreach ($arr as $a) { $selected = ($sel !== null && $a[$val] == $sel) ? 'selected' : ''; $opt .= ""; } return $opt; } // --- SALVATAGGIO INLINE --- if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['action'])) { $action = $_POST['action']; $data = [ 'idmatrice' => $_POST['idmatrice'], 'id_linea' => $_POST['id_linea'], 'id_cliente' => $_POST['id_cliente'] ?: null, 'data_zibo' => $_POST['data_zibo'] ?: null, 'data_cliente' => $_POST['data_cliente'] ?: null, 'metri' => $_POST['metri'] ?: 0, 'kg_sp' => $_POST['kg_sp'] ?: 0, 'kg_p' => $_POST['kg_p'] ?: 0, 'ore_previste' => $_POST['ore_previste'] ?: 0, 'note_extra' => $_POST['note_extra'] ?: null, 'id_status' => $_POST['id_status'] ?? 1 ]; try { // ============================ // INSERT // ============================ if ($action === 'insert') { $sql = "INSERT INTO productiondata (Data, idmatrice, id_linea, id_cliente, data_zibo, data_cliente, metri, kg_sp, kg_p, ore_previste, note_extra, data_produzione, id_status) VALUES (:Data, :idmatrice, :id_linea, :id_cliente, :data_zibo, :data_cliente, :metri, :kg_sp, :kg_p, :ore_previste, :note_extra, :data_produzione, :id_status)"; $stmt = $pdo->prepare($sql); $stmt->execute($data); // QUI devi prendere il nuovo ID $idProd = $pdo->lastInsertId(); // cancella vecchie associazioni (non serve ma per sicurezza) $pdo->prepare("DELETE FROM productiondata_mescole WHERE id_productiondata=?") ->execute([$idProd]); // aggiungi nuove if (!empty($_POST['mescole'])) { $ins = $pdo->prepare("INSERT INTO productiondata_mescole (id_productiondata, id_mescola) VALUES (?, ?)"); foreach ($_POST['mescole'] as $m) { $ins->execute([$idProd, $m]); } } echo json_encode(['success' => true]); } // ============================ // UPDATE // ============================ elseif ($action === 'update' && !empty($_POST['id'])) { $data['id'] = $_POST['id']; $sql = "UPDATE productiondata SET idmatrice=:idmatrice, id_linea=:id_linea, id_cliente=:id_cliente, data_zibo=:data_zibo, data_cliente=:data_cliente, metri=:metri, kg_sp=:kg_sp, kg_p=:kg_p, ore_previste=:ore_previste, note_extra=:note_extra, id_status=:id_status WHERE id = :id "; $stmt = $pdo->prepare($sql); $stmt->execute($data); // QUI devi usare L'ID ESISTENTE ! $idProd = $_POST['id']; $pdo->prepare("DELETE FROM productiondata_mescole WHERE id_productiondata=?") ->execute([$idProd]); if (!empty($_POST['mescole'])) { $ins = $pdo->prepare("INSERT INTO productiondata_mescole (id_productiondata, id_mescola) VALUES (?, ?)"); foreach ($_POST['mescole'] as $m) { $ins->execute([$idProd, $m]); } } echo json_encode(['success' => true]); } exit; } catch (Exception $e) { echo json_encode(['success' => false, 'msg' => $e->getMessage()]); exit; } } ?> Programmazione Produzione - <?= $titlewebsite ?>
Programmazione Produzione
query($sql)->fetchAll(PDO::FETCH_ASSOC); ?>
In Produzione / Pausa / Problema
Matrice Mescola Linea Cliente Data Zibo Data Cliente Timer Status Foto

Programmati
Priority Matrice Mescola Linea Cliente Data Zibo Data Cliente mt kg sp kg p Ore Note Status Azioni
Da Programmare
Matrice Mescola Linea Cliente Data Zibo Data Cliente mt kg sp kg p Ore Note Status Azioni