false, 'message' => 'Invalid idmatrice']); exit; } if (!is_array($idmescole)) $idmescole = []; // normalizza a int e rimuovi duplicati $idmescole = array_values(array_unique(array_filter(array_map('intval', $idmescole), fn($v) => $v > 0))); $db = DBHandlerSelect::getInstance(); $pdo = $db->getConnection(); $pdo->beginTransaction(); // rimuovi vecchie associazioni $stmt = $pdo->prepare("DELETE FROM matrici_mescole WHERE idmatrice = ?"); $stmt->execute([$idmatrice]); // inserisci nuove if (!empty($idmescole)) { $stmt = $pdo->prepare("INSERT INTO matrici_mescole (idmatrice, idmescola) VALUES (?, ?)"); foreach ($idmescole as $idmescola) { $stmt->execute([$idmatrice, $idmescola]); } } $pdo->commit(); echo json_encode(['success' => true, 'message' => 'Associazioni aggiornate']); } catch (Throwable $e) { if (isset($pdo) && $pdo->inTransaction()) $pdo->rollBack(); echo json_encode(['success' => false, 'message' => 'Server error']); }