<?php include 'conexion.php'; header('Content-Type: application/json'); $rawData = file_get_contents("php://input"); $data = json_decode($rawData, true); if (!isset($data['asientos']) || !is_array($data['asientos'])) { echo json_encode(["error" => "Datos inválidos"]); exit; } $conexionBD->begin_transaction(); try { foreach ($data['asientos'] as $idAsiento) { // Verificar si el asiento sigue disponible $stmtVerificar = $conexionBD->prepare("SELECT estado FROM asientos WHERE id_asiento = ?"); $stmtVerificar->bind_param("i", $idAsiento); $stmtVerificar->execute(); $resultado = $stmtVerificar->get_result()->fetch_assoc(); if (!$resultado || $resultado['estado'] !== 'disponible') { throw new Exception("El asiento ID $idAsiento ya está ocupado o no existe."); } // Marcar el asiento como ocupado $stmtActualizar = $conexionBD->prepare("UPDATE asientos SET estado = 'ocupado' WHERE id_asiento = ?"); $stmtActualizar->bind_param("i", $idAsiento); $stmtActualizar->execute(); } $conexionBD->commit(); echo json_encode(["success" => true]); } catch (Exception $e) { $conexionBD->rollback(); echo json_encode(["error" => $e->getMessage()]); } exit; ?>