fixed matrici
This commit is contained in:
@@ -1,27 +1,42 @@
|
||||
<?php
|
||||
include('../class/db-functions.php');
|
||||
header('Content-Type: application/json');
|
||||
include('include/headscript.php');
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
|
||||
try {
|
||||
$data = json_decode(file_get_contents('php://input'), true);
|
||||
$idMatrice = intval($data['id']);
|
||||
$mescole = $data['mescole'] ?? [];
|
||||
$idmatrice = (int)($_POST['idmatrice'] ?? 0);
|
||||
$raw = $_POST['idmescole'] ?? '[]';
|
||||
$idmescole = json_decode($raw, true);
|
||||
|
||||
if ($idmatrice <= 0) {
|
||||
echo json_encode(['success' => 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();
|
||||
|
||||
// Rimuove tutte le precedenti associazioni
|
||||
$pdo->prepare("DELETE FROM matrice_mescole WHERE idmatrice = ?")->execute([$idMatrice]);
|
||||
$pdo->beginTransaction();
|
||||
|
||||
// Inserisce le nuove
|
||||
if (!empty($mescole)) {
|
||||
$stmt = $pdo->prepare("INSERT INTO matrice_mescole (idmatrice, idmescola) VALUES (?, ?)");
|
||||
foreach ($mescole as $idMescola) {
|
||||
$stmt->execute([$idMatrice, $idMescola]);
|
||||
// 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]);
|
||||
}
|
||||
}
|
||||
|
||||
echo json_encode(['success' => true, 'message' => 'Associazioni mescole aggiornate.']);
|
||||
} catch (Exception $e) {
|
||||
echo json_encode(['success' => false, 'message' => 'Errore: ' . $e->getMessage()]);
|
||||
$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']);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user