ProyectoTicketFei/controladores/concierto_zonas.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;
}
?>