64 lines
1.8 KiB
PHP
64 lines
1.8 KiB
PHP
<?php
|
|
header('Content-Type: application/json');
|
|
require '../includes/config.php';
|
|
|
|
if (!is_logged_in()) {
|
|
http_response_code(401);
|
|
echo json_encode(['error' => 'No autenticado']);
|
|
exit;
|
|
}
|
|
|
|
$method = $_SERVER['REQUEST_METHOD'];
|
|
|
|
switch ($method) {
|
|
case 'GET':
|
|
try {
|
|
$stmt = $pdo->query("
|
|
SELECT a.*,
|
|
GROUP_CONCAT(ac.curso_id) AS cursos
|
|
FROM alumnos a
|
|
LEFT JOIN alumnos_cursos ac ON a.id = ac.alumno_id
|
|
GROUP BY a.id
|
|
");
|
|
|
|
$alumnos = $stmt->fetchAll();
|
|
|
|
// Convertir cursos a array
|
|
foreach ($alumnos as &$alumno) {
|
|
$alumno['cursos'] = $alumno['cursos'] ? explode(',', $alumno['cursos']) : [];
|
|
}
|
|
|
|
echo json_encode($alumnos);
|
|
|
|
} catch (PDOException $e) {
|
|
http_response_code(500);
|
|
echo json_encode(['error' => 'Error al cargar alumnos']);
|
|
}
|
|
break;
|
|
|
|
case 'POST':
|
|
$data = json_decode(file_get_contents('php://input'), true);
|
|
|
|
try {
|
|
$stmt = $pdo->prepare("
|
|
INSERT INTO alumnos (nombre, email, telefono)
|
|
VALUES (?, ?, ?)
|
|
");
|
|
$stmt->execute([
|
|
$data['nombre'],
|
|
$data['email'],
|
|
$data['telefono'] ?? null
|
|
]);
|
|
|
|
echo json_encode(['success' => true, 'id' => $pdo->lastInsertId()]);
|
|
} catch (PDOException $e) {
|
|
http_response_code(500);
|
|
echo json_encode(['error' => 'Error al crear alumno: ' . $e->getMessage()]);
|
|
}
|
|
break;
|
|
|
|
default:
|
|
http_response_code(405);
|
|
echo json_encode(['error' => 'Método no permitido']);
|
|
}
|
|
?>
|