<?php error_reporting(E_ALL); ini_set('display_errors', 1); include 'conexion.php'; if ($_SERVER["REQUEST_METHOD"] !== "POST") { die("Error: La solicitud no es POST."); } $nombre = $_POST['nombre'] ?? ''; $artista = $_POST['artista'] ?? ''; $fecha = $_POST['fecha'] ?? ''; $hora = $_POST['hora'] ?? ''; $direccion = $_POST['direccion'] ?? ''; $precio_vip = $_POST['precio_vip'] ?? null; $precio_general = $_POST['precio_general'] ?? null; if (empty($nombre) || empty($artista) || empty($fecha) || empty($hora) || empty($direccion) || empty($precio_vip) || empty($precio_general)) { die("Error: Todos los campos son obligatorios."); } // Manejo de imagen if (!empty($_FILES["imagen"]["name"])) { $extension = pathinfo($_FILES["imagen"]["name"], PATHINFO_EXTENSION); $imagenNombre = time() . "_" . uniqid() . "." . $extension; $rutaImagen = __DIR__ . "/../img/" . $imagenNombre; if (!move_uploaded_file($_FILES["imagen"]["tmp_name"], $rutaImagen)) { die("Error: No se pudo mover la imagen."); } } else { $imagenNombre = "default.jpg"; } $conn->begin_transaction(); try { // Insertar el concierto con hora $sql = "INSERT INTO conciertos (nombre, artista, fecha, hora, direccion, imagen) VALUES (?, ?, ?, ?, ?, ?)"; $stmt = $conn->prepare($sql); $stmt->bind_param("ssssss", $nombre, $artista, $fecha, $hora, $direccion, $imagenNombre); $stmt->execute(); $concierto_id = $stmt->insert_id; // Insertar las zonas (VIP y General) $sql_zonas = "INSERT INTO zonas (concierto_id, nombre, capacidad, precio) VALUES (?, 'VIP', 5, ?), (?, 'General', 10, ?)"; $stmt_zonas = $conn->prepare($sql_zonas); $stmt_zonas->bind_param("idid", $concierto_id, $precio_vip, $concierto_id, $precio_general); $stmt_zonas->execute(); // Obtener los IDs de las zonas insertadas $zona_vip_id = $conn->insert_id; $zona_general_id = $zona_vip_id + 1; // Insertar los asientos (VIP y General) $sql_asientos = "INSERT INTO asientos (zona_id, numero, estado) VALUES "; $values = []; $params = []; for ($i = 1; $i <= 5; $i++) { $values[] = "(?, ?, 'disponible')"; array_push($params, $zona_vip_id, $i); } for ($i = 1; $i <= 10; $i++) { $values[] = "(?, ?, 'disponible')"; array_push($params, $zona_general_id, $i); } $sql_asientos .= implode(", ", $values); $stmt_asientos = $conn->prepare($sql_asientos); $stmt_asientos->bind_param(str_repeat("ii", count($params) / 2), ...$params); $stmt_asientos->execute(); $conn->commit(); echo "Concierto agregado con éxito."; } catch (Exception $e) { $conn->rollback(); die("Error en la transacción: " . $e->getMessage()); } ?>