<?php
// Función para buscar alumnos por nombre
function buscarAlumnosPorNombre($conn, $nombre) {
$sql = "SELECT * FROM uh_alumno WHERE alu_nombre_completo LIKE ?";
$stmt = $conn->prepare($sql);
$likeParam = "%$nombre%";
$stmt->bind_param("s", $likeParam);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows > 0) {
$alumnos = $result->fetch_all(MYSQLI_ASSOC);
return $alumnos;
} else {
return [];
}
}
// Función para actualizar o insertar un alumno
function registrarOActualizarAlumno($conn, $nombreCompleto, $celular, $telefono, $padreTutor, $calle, $numeroExterior, $colonia, $cp, $email, $fechaNacimiento) {
// Buscar alumno por nombre completo
$alumnos = buscarAlumnosPorNombre($conn, $nombreCompleto);
if (!empty($alumnos)) {
// Si el alumno existe, actualizar su información
foreach ($alumnos as $alumno) {
$nuevaEdad = calcularEdad($fechaNacimiento);
$nuevoMayorEdad = ($nuevaEdad >= 18) ? TRUE : FALSE;
$nuevoMenorEdad = !$nuevoMayorEdad;
// Actualizar registro
$updateSql = "UPDATE uh_alumno SET alu_celular = ?, alu_telefono = ?, alu_padre_tutor = ?, alu_calle = ?, alu_numero_exterior = ?, alu_colonia = ?, alu_cp = ?, alu_email = ?, alu_fecha_nacimiento = ?, alu_edad = ?, alu_mayor_edad = ?, alu_menor_edad = ? WHERE alu_id = ?";
$updateStmt = $conn->prepare($updateSql);
$updateStmt->bind_param("sssssssssiisi", $celular, $telefono, $padreTutor, $calle, $numeroExterior, $colonia, $cp, $email, $fechaNacimiento, $nuevaEdad, $nuevoMayorEdad, $nuevoMenorEdad, $alumno['alu_id']);
if ($updateStmt->execute()) {
echo "Registro de alumno actualizado exitosamente. Nueva edad: $nuevaEdad años.";
} else {
echo "Error al actualizar: " . $conn->error;
}
$updateStmt->close();
}
} else {
// Si el alumno no existe, insertar como nuevo registro
insertarAlumno($conn, $nombreCompleto, $celular, $telefono, $padreTutor, $calle, $numeroExterior, $colonia, $cp, $email, $fechaNacimiento);
}
}
// Función para manejar el registro de un nuevo alumno
function insertarAlumno($conn, $nombreCompleto, $celular, $telefono, $padreTutor, $calle, $numeroExterior, $colonia, $cp, $email, $fechaNacimiento) {
// Calcular edad
$edad = calcularEdad($fechaNacimiento);
$mayorEdad = ($edad >= 18) ? TRUE : FALSE;
$menorEdad = !$mayorEdad;
// Generar nueva matrícula
$matricula = generarNuevaMatricula($conn);
// Insertar nuevo alumno
$sql = "INSERT INTO uh_alumno (alu_matricula, alu_nombre_completo, alu_celular, alu_telefono, alu_padre_tutor, alu_calle, alu_numero_exterior, alu_colonia, alu_cp, alu_email, alu_fecha_nacimiento, alu_edad, alu_mayor_edad, alu_menor_edad)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ssssssssssssis", $matricula, $nombreCompleto, $celular, $telefono, $padreTutor, $calle, $numeroExterior, $colonia, $cp, $email, $fechaNacimiento, $edad, $mayorEdad, $menorEdad);
if ($stmt->execute()) {
echo "Nuevo registro de alumno creado exitosamente. Matrícula: $matricula, Edad calculada: $edad años.";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$stmt->close();
}
// Ejemplo de uso de las funciones
$nombreCompletoAlumno = 'Juan Pérez González';
registrarOActualizarAlumno($conn, $nombreCompletoAlumno, '5551234567', '5557654321', 'Carlos Pérez', 'Calle Falsa', '123', 'Colonia Ejemplo', '12345', 'juan.perez@example.com', '2008-05-23');
$conn->close();