56 lines
1.9 KiB
PHP
56 lines
1.9 KiB
PHP
<?php
|
|
include 'conexion.php';
|
|
|
|
// Configurar respuesta como JSON
|
|
header('Content-Type: application/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);
|
|
|
|
$conciertos = [];
|
|
|
|
if ($resultado->num_rows > 0) {
|
|
while ($fila = $resultado->fetch_assoc()) {
|
|
$id_concierto = $fila['id_concierto'];
|
|
|
|
if (!isset($conciertos[$id_concierto])) {
|
|
$direccion = trim("{$fila['calle']}, {$fila['colonia']}, #{$fila['numero_direccion']}, CP: {$fila['codigo_postal']}, {$fila['estado']}");
|
|
if ($direccion === ", , #, CP: , ") {
|
|
$direccion = "Dirección no definida";
|
|
}
|
|
|
|
$conciertos[$id_concierto] = [
|
|
'id' => $id_concierto,
|
|
'nombre_concierto' => $fila['nombre_concierto'],
|
|
'artista' => $fila['artista'],
|
|
'fecha' => $fila['fecha'],
|
|
'direccion' => $direccion,
|
|
'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']
|
|
];
|
|
}
|
|
}
|
|
}
|
|
|
|
// Enviar JSON
|
|
echo json_encode(array_values($conciertos), JSON_PRETTY_PRINT);
|
|
|
|
$conexionBD->close();
|
|
?>
|