<?php include 'conexion.php'; header('Content-Type: application/json'); // Asegurar que el contenido es JSON error_reporting(E_ALL); ini_set('display_errors', 1); $consulta = "SELECT c.id_concierto, c.nombre_concierto, c.artista, c.fecha, c.calle, c.colonia, c.numero_direccion, c.codigo_postal, c.estado, c.capacidad_total, z.nombre_zona, z.capacidad AS capacidad_zona, z.precio FROM conciertos c LEFT JOIN zonas z ON c.id_concierto = z.id_concierto ORDER BY c.id_concierto, FIELD(z.nombre_zona, 'General', 'Plata', 'Oro', 'VIP')"; $resultado = $conexionBD->query($consulta); if (!$resultado) { echo json_encode(["error" => "Error en la consulta SQL: " . $conexionBD->error]); exit; } $conciertos = []; while ($fila = $resultado->fetch_assoc()) { $id_concierto = $fila['id_concierto']; if (!isset($conciertos[$id_concierto])) { $conciertos[$id_concierto] = [ 'id' => $id_concierto, 'nombre_concierto' => $fila['nombre_concierto'], 'artista' => $fila['artista'], 'fecha' => $fila['fecha'], 'direccion' => $fila['calle'] . ', ' . $fila['colonia'] . ', ' . $fila['numero_direccion'] . ', CP: ' . $fila['codigo_postal'] . ', ' . $fila['estado'], 'capacidad_total' => $fila['capacidad_total'], 'zonas' => [] ]; } if (!empty($fila['nombre_zona'])) { $conciertos[$id_concierto]['zonas'][] = [ 'nombre_zona' => $fila['nombre_zona'], 'capacidad' => $fila['capacidad_zona'], 'precio' => $fila['precio'] ]; } } // Convertir el array a JSON y enviarlo echo json_encode(array_values($conciertos), JSON_PRETTY_PRINT); $conexionBD->close(); ?>