112 lines
3.7 KiB
PHP
112 lines
3.7 KiB
PHP
<?php
|
|
include 'conexion.php';
|
|
|
|
header('Content-Type: application/json');
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
|
|
// Verificar si es solicitud de concierto
|
|
if (isset($_GET['id_concierto'])) {
|
|
$idConcierto = intval($_GET['id_concierto']);
|
|
|
|
// Obtener la información del concierto
|
|
$consultaConcierto = "SELECT * FROM conciertos WHERE id_concierto = ?";
|
|
$stmt = $conexionBD->prepare($consultaConcierto);
|
|
$stmt->bind_param("i", $idConcierto);
|
|
$stmt->execute();
|
|
$resultadoConcierto = $stmt->get_result();
|
|
$concierto = $resultadoConcierto->fetch_assoc();
|
|
|
|
if (!$concierto) {
|
|
echo json_encode(["error" => "Concierto no encontrado"]);
|
|
exit;
|
|
}
|
|
|
|
// Obtener zonas del concierto
|
|
$consultaZonas = "SELECT * FROM zonas WHERE id_concierto = ?";
|
|
$stmtZonas = $conexionBD->prepare($consultaZonas);
|
|
$stmtZonas->bind_param("i", $idConcierto);
|
|
$stmtZonas->execute();
|
|
$resultadoZonas = $stmtZonas->get_result();
|
|
|
|
$zonas = [];
|
|
while ($zona = $resultadoZonas->fetch_assoc()) {
|
|
// Contar asientos disponibles y ocupados
|
|
$consultaAsientos = "SELECT estado FROM asientos WHERE id_zona = ?";
|
|
$stmtAsientos = $conexionBD->prepare($consultaAsientos);
|
|
$stmtAsientos->bind_param("i", $zona['id_zona']);
|
|
$stmtAsientos->execute();
|
|
$resultadoAsientos = $stmtAsientos->get_result();
|
|
|
|
$asientos_disponibles = 0;
|
|
$asientos_ocupados = 0;
|
|
|
|
while ($asiento = $resultadoAsientos->fetch_assoc()) {
|
|
if ($asiento['estado'] === 'disponible') {
|
|
$asientos_disponibles++;
|
|
} else {
|
|
$asientos_ocupados++;
|
|
}
|
|
}
|
|
|
|
// Agregar datos de asientos a la zona
|
|
$zona['asientos_disponibles'] = $asientos_disponibles;
|
|
$zona['asientos_ocupados'] = $asientos_ocupados;
|
|
|
|
$zonas[] = $zona;
|
|
}
|
|
|
|
// Agregar las zonas al concierto
|
|
$concierto['zonas'] = $zonas;
|
|
|
|
echo json_encode($concierto);
|
|
exit;
|
|
}
|
|
|
|
// Verificar si es solicitud de zona
|
|
if (isset($_GET['id_zona'])) {
|
|
$idZona = intval($_GET['id_zona']);
|
|
|
|
// Obtener la información de la zona específica
|
|
$consultaZona = "SELECT * FROM zonas WHERE id_zona = ?";
|
|
$stmtZona = $conexionBD->prepare($consultaZona);
|
|
$stmtZona->bind_param("i", $idZona);
|
|
$stmtZona->execute();
|
|
$resultadoZona = $stmtZona->get_result();
|
|
$zona = $resultadoZona->fetch_assoc();
|
|
|
|
if (!$zona) {
|
|
echo json_encode(["error" => "Zona no encontrada"]);
|
|
exit;
|
|
}
|
|
|
|
// Obtener asientos de la zona
|
|
$consultaAsientos = "SELECT estado FROM asientos WHERE id_zona = ?";
|
|
$stmtAsientos = $conexionBD->prepare($consultaAsientos);
|
|
$stmtAsientos->bind_param("i", $idZona);
|
|
$stmtAsientos->execute();
|
|
$resultadoAsientos = $stmtAsientos->get_result();
|
|
|
|
$asientos_disponibles = 0;
|
|
$asientos_ocupados = 0;
|
|
|
|
while ($asiento = $resultadoAsientos->fetch_assoc()) {
|
|
if ($asiento['estado'] === 'disponible') {
|
|
$asientos_disponibles++;
|
|
} else {
|
|
$asientos_ocupados++;
|
|
}
|
|
}
|
|
|
|
// Agregar información de asientos a la zona
|
|
$zona['asientos_disponibles'] = $asientos_disponibles;
|
|
$zona['asientos_ocupados'] = $asientos_ocupados;
|
|
|
|
echo json_encode($zona);
|
|
exit;
|
|
}
|
|
|
|
echo json_encode(["error" => "Solicitud incorrecta"]);
|
|
exit;
|
|
}
|
|
?>
|