Hi! Could we please enable some services and cookies to improve your experience and our website?

PHPize Online / SQLize Online  /  SQLtest Online

A A A
Share      Blog   Popular

PHPize.online is a free online environment for quickly running, experimenting with and sharing PHP (including Carbon extension for DateTime) and SQL code. You can run your SQL code with PHP code that can use the same DB. For database manipulations you can use pre-defined instances of PDO ($pdo), mysqli ($mysqli) & Laravel query builder ($db)

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