<?php include 'conexion.php'; header('Content-Type: application/json'); error_reporting(E_ALL); ini_set('display_errors', 1); // Leer el JSON enviado $datos = json_decode(file_get_contents("php://input"), true); if ($datos === null) { echo json_encode(['insercionCorrecta' => false, 'error' => 'Error al decodificar JSON']); exit; } // Verificar que los datos requeridos estén presentes if (!isset($datos['nombre_concierto'], $datos['zonas'])) { echo json_encode(['insercionCorrecta' => false, 'error' => 'Faltan datos requeridos']); exit; } // Extraer valores $nombre_concierto = $datos['nombre_concierto']; $artista = $datos['artista']; $fecha = $datos['fecha']; $calle = $datos['calle']; $colonia = $datos['colonia']; $numero_direccion = $datos['numero_direccion']; $codigo_postal = $datos['codigo_postal']; $estado = $datos['estado']; $capacidad_total = $datos['capacidad_total']; $zonas = $datos['zonas']; $conexionBD->begin_transaction(); try { // Insertar el concierto $consulta = "INSERT INTO conciertos (nombre_concierto, artista, fecha, calle, colonia, numero_direccion, codigo_postal, estado, capacidad_total) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"; $stmt = $conexionBD->prepare($consulta); $stmt->bind_param("ssssssssi", $nombre_concierto, $artista, $fecha, $calle, $colonia, $numero_direccion, $codigo_postal, $estado, $capacidad_total); $stmt->execute(); $id_concierto = $conexionBD->insert_id; $stmt->close(); // Insertar zonas y sus asientos $consulta_zonas = "INSERT INTO zonas (id_concierto, nombre_zona, capacidad, precio) VALUES (?, ?, ?, ?)"; $stmt_zonas = $conexionBD->prepare($consulta_zonas); $consulta_asientos = "INSERT INTO asientos (id_zona, numero_asiento, estado) VALUES (?, ?, 'disponible')"; $stmt_asientos = $conexionBD->prepare($consulta_asientos); foreach ($zonas as $zona) { $stmt_zonas->bind_param("isid", $id_concierto, $zona['nombre_zona'], $zona['capacidad'], $zona['precio']); $stmt_zonas->execute(); $id_zona = $conexionBD->insert_id; // Insertar asientos for ($i = 1; $i <= $zona['capacidad']; $i++) { $stmt_asientos->bind_param("ii", $id_zona, $i); $stmt_asientos->execute(); } } $stmt_zonas->close(); $stmt_asientos->close(); $conexionBD->commit(); echo json_encode(['insercionCorrecta' => true, 'id_concierto' => $id_concierto]); } catch (Exception $e) { $conexionBD->rollback(); echo json_encode(['insercionCorrecta' => false, 'error' => $e->getMessage()]); } $conexionBD->close(); ?>