ProyectoTicketFei/controladores/actualizar_concierto.php

68 lines
2.3 KiB
PHP

<?php
include 'conexion.php';
if ($_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['id'])) {
$id = intval($_GET['id']);
$consulta = "SELECT * FROM conciertos WHERE id_concierto = ?";
$stmt = $conexionBD->prepare($consulta);
$stmt->bind_param("i", $id);
$stmt->execute();
$resultado = $stmt->get_result();
$concierto = $resultado->fetch_assoc();
if ($concierto) {
$consulta_zonas = "SELECT * FROM zonas WHERE id_concierto = ?";
$stmt_zonas = $conexionBD->prepare($consulta_zonas);
$stmt_zonas->bind_param("i", $id);
$stmt_zonas->execute();
$resultado_zonas = $stmt_zonas->get_result();
while ($zona = $resultado_zonas->fetch_assoc()) {
$concierto['zonas'][] = $zona;
}
echo json_encode($concierto);
} else {
echo json_encode(["error" => "Concierto no encontrado"]);
}
exit;
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$datos = json_decode(file_get_contents("php://input"), true);
if (!$datos || !isset($datos['id'])) {
echo json_encode(["actualizacionCorrecta" => false, "error" => "Datos incompletos"]);
exit;
}
// Actualizar la información del concierto
$consulta = "UPDATE conciertos SET nombre_concierto=?, artista=?, fecha=?, calle=?, colonia=?, numero_direccion=?, codigo_postal=?, estado=?, capacidad_total=? WHERE id_concierto=?";
$stmt = $conexionBD->prepare($consulta);
$stmt->bind_param("ssssssissi",
$datos['nombre_concierto'],
$datos['artista'],
$datos['fecha'],
$datos['calle'],
$datos['colonia'],
$datos['numero_direccion'],
$datos['codigo_postal'],
$datos['estado'],
$datos['capacidad_total'],
$datos['id']
);
$stmt->execute();
// Actualizar la información de las zonas
foreach ($datos['zonas'] as $zona) {
$consulta_zonas = "UPDATE zonas SET capacidad=?, precio=? WHERE id_concierto=? AND nombre_zona=?";
$stmt_zona = $conexionBD->prepare($consulta_zonas);
$stmt_zona->bind_param("idis",
$zona['capacidad'],
$zona['precio'],
$datos['id'],
$zona['nombre_zona']
);
$stmt_zona->execute();
}
echo json_encode(["actualizacionCorrecta" => true]);
exit;
}