PHPize Online / SQLize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
CREATE TABLE uh_alumno ( alu_id INT(4) NOT NULL AUTO_INCREMENT, alu_matricula VARCHAR(11) NOT NULL, alu_nombre_completo VARCHAR(510) NOT NULL, alu_celular VARCHAR(100) NOT NULL, alu_telefono VARCHAR(100) NOT NULL, alu_padre_tutor VARCHAR(255) NOT NULL, alu_calle VARCHAR(255) NOT NULL, alu_numero_exterior VARCHAR(30) NOT NULL, alu_colonia VARCHAR(255) NOT NULL, alu_cp VARCHAR(5) NOT NULL, alu_email VARCHAR(255) NOT NULL, alu_fecha_nacimiento DATE DEFAULT NULL, alu_edad INT DEFAULT NULL, alu_mayor_edad BOOLEAN DEFAULT FALSE, alu_menor_edad BOOLEAN DEFAULT FALSE, PRIMARY KEY (alu_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE uh_alumno_responsable ( alures_id INT(4) NOT NULL AUTO_INCREMENT, alures_nombre_completo VARCHAR(510) NOT NULL, alures_parentesco VARCHAR(100) NOT NULL, alures_celular VARCHAR(100) NOT NULL, alures_telefono VARCHAR(100) NOT NULL, alures_email VARCHAR(255) NOT NULL, PRIMARY KEY (alures_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Copy Clear
Copy Format Clear
<?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();
Show:  
Copy Clear