PHP CRUD usando OOP con MySQLi en MVC
PHP CRUD usando OOP con MySQLi en MVC. El desarrollo de un software web utilizando técnicas de programación como OOP aumentará la confianza en la programación para desarrollar un proyecto de aplicación web en el lenguaje PHP.
Por lo tanto, La creación, Visualización, La actualización y eliminación, características propias de un (CRUD).
Recordemos, que el uso del CRUD es uno de los métodos de desarrollo más fundamentales en cualquier software web, móvil y/o de escritorio.
El uso de esta metodología para el desarrollo de la aplicación Web por más simple que sea, usted no será capaz de desarrollar sin una implementación CRUD. Sin embargo, hacerlo utilizando la arquitectura MVC es una de las mejores opciones, ya que ayudará para una mayor estabilidad.
En este artículo, implementaremos un sistema PHP CRUD usando estructura de OOP. Por consiguiente, estaremos utilizando MySQLi para interactuar con la base de datos para una mayor estabilidad de conexión.
Crear un sistema con PHP CRUD usando OOP es la parte más fácil en cualquier aplicación web escrito con el lenguaje PHP. Aunque, también se puede desarrollar un CRUD orientado a objetos con PDO.
En artículos anteriores, hemos visto ejemplos de implementación de PHP CRUD. Si quieres crear PHP CRUD usando Ajax sin tener que refrescar la página para ahorrar recursos. Aquí, el ejemplo CRUD en línea de AJAX.
PHP CRUD usando OOP – información general
A continuación, veremos preguntas y pasos para ver el correcto funcionamiento del sistema asistencia de alumnos. Por lo tanto, el sistema puede crear y administrar la asistencia de los estudiantes. Sin embargo, hemos utilizado la instrucción preparada de MySQLi para realizar consultas de base de datos y/o almacenar la información de los estudiantes.
¿Cómo funciona el sistema PHP CRUD?
Primeramente, en el CRUD del estudiante (vista de alumnos), los registros de los alumnos se agregan a la base de datos utilizando el gestor MySQLi mediante la recopilación de datos a través de un formulario HTML. Ahora, las informaciones del formulario se enviarán a un fichero PHP para su respectivo proceso y almacenamiento a través de la acción del CRUD.
El parámetro de (ACCION) significa la acción realizada por el usuario para que la operación se pueda identificar en el nivel de controlador y enviar a la lógica. Este es el flujo de control seguido en el patrón de diseño MVC.
La clase del modelo contendrá funciones para realizar PHP CRUD utilizando OOP. Sin embargo, las estadísticas de asistencia al estudiante se crean y gestionan en la base de datos con la referencia del ID de estudiante para su optimo funcionamiento.
Ejemplo de estructura de archivos de proyecto
Este sistema de ejemplo trata con las funcionalidades del estudiante y asistencia usando la metodología CRUD de manera independiente para cada objeto. Por lo tanto, la estructura de archivo de nuestro sistema es el que mostramos a continuación.
Motor de PHP CRUD usando el controlador de vista de modelo (MVC)
En este sistema asistencia de alumnos, la página principal de aterrizaje es el (index. php) y será el controlador de acción CRUD. Ahora, en este controlador, el estudiante y los casos de acción CRUD de asistencia se agrupan mediante la estructura de control de conmutadores del lenguaje PHP.
El parámetro «Actions» se pasa con la URL basada en la que se ejecutará el caso del controlador. Las clases de modelo Student.php y Attendance.php consisten en funciones CRUD que serán llamadas desde solicitudes específicas.
Las funciones de clase de modelo están preparando la matriz de parámetros de consulta y consulta. La consulta y sus parámetros se envían al invocar las funciones de base de datos apropiadas.
Ahora, en la clase DBController, las instrucciones de consulta se ejecutan después de enlazar los parámetros de consulta y la conexión con el sistema mediante el uso de MySQLi.
Script de base de datos
A continuación, mostraremos el script SQL (lenguaje estructurado de consultas) y debe importarse a la base de datos para ejecutar la consulta y crear las dos tablas que son necesarias para el correcto funcionamiento del sistema y/o ejemplo mencionado.
CREATE TABLE `tbl_attendance` ( `id` int(11) NOT NULL, `student_id` int(11) NOT NULL, `present` tinyint(4) NOT NULL, `absent` tinyint(4) NOT NULL, `attendance_date` date NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `tbl_student` ( `id` int(11) NOT NULL, `name` varchar(55) NOT NULL, `roll_number` int(11) NOT NULL, `dob` date NOT NULL, `class` varchar(55) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Esquema de base de datos
El siguiente diagrama generada desde el PHPMyAdmin y de esquema de ER nos explica la relación existente de tabla de base de datos llamados: tbl_estudiante y tbl_asistencia, que será utilizada en este sistema.
Crear PHP CRUD para la funcionalidad del estudiante
En esta sección, veremos el código para crear PHP CRUD usando las características de OOP para administrar los datos de los estudiantes usando MySQLi. Además, veremos cómo crear la vista HTML para proporcionar una interfaz web para que los usuarios realicen acciones CRUD.
- Los formularios de adición/edición del alumno se crean para los detalles del alumno de captura. La lista de estudiantes contiene los controles de acción de edición/eliminación para desencadenar la acción de PHP CRUD.
- Crear nuevo alumno en el CRUD Asistencia.
- Encima de la vista de lista de estudiantes se muestra el botón Agregar alumno al usuario. Al hacer clic en este botón, el formulario de adición se mostrará con el nombre, el número de rollo, la clase y la fecha de los campos de nacimiento.
- Al enviar este formulario, la validación básica del formulario del lado cliente se gestiona antes de enviar los datos a PHP.
Este es el código HTML con el formulario de adición de alumnos y el script de validación.
<?php require_once "web/header.php"; ?> <form name="frmAdd" method="post" action="" id="frmAdd" onSubmit="return validate();"> <div id="mail-status"></div> <div> <label style="padding-top: 20px;">Name</label> <span id="name-info" class="info"></span><br /> <input type="text" name="name" id="name" class="demoInputBox"> </div> <div> <label>Roll Number</label> <span id="roll-number-info" class="info"></span><br /> <input type="text" name="roll_number" id="roll_number" class="demoInputBox"> </div> <div> <label>Date of Birth</label> <span id="dob-info" class="info"></span><br /> <input type="date" name="dob" id="dob" class="demoInputBox"> </div> <div> <label>Class</label> <span id="class-info" class="info"></span><br /> <input type="text" name="class" id="class" class="demoInputBox"> </div> <div> <input type="submit" name="add" id="btnSubmit" value="Add" /> </div> </div> </form> <script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script> <script> function validate() { var valid = true; $(".demoInputBox").css('background-color',''); $(".info").html(''); if(!$("#name").val()) { $("#name-info").html("(required)"); $("#name").css('background-color','#FFFFDF'); valid = false; } if(!$("#roll_number").val()) { $("#roll-number-info").html("(required)"); $("#roll_number").css('background-color','#FFFFDF'); valid = false; } if(!$("#dob").val()) { $("#dob-info").html("(required)"); $("#dob").css('background-color','#FFFFDF'); valid = false; } if(!$("#class").val()) { $("#class-info").html("(required)"); $("#class").css('background-color','#FFFFDF'); valid = false; } return valid; } </script> </body> </html>
En la función addStudent() se generan la consulta INSERT y los parámetros de consulta. Estos detalles de la consulta se enviarán a la capa del controlador MVC para realizar la acción de inserción del alumno con MySQLi.
Leer los datos de los alumnos a la lista con actualizar eliminar controles de acción
En el código anterior, los datos de los alumnos de la base se pueden leer de dos maneras. Para la vista de lista, Lee todos los registros de alumnos independientemente de cualquier condición.
Pero, en el caso de edición, el resultado del alumno se obtiene basándose en el identificador para rellenar los datos existentes en el formulario de edición. El flujo de creación y actualización en su mayoría será similar entre sí.
Agregar asistencia estudiantil (crear)
De forma predeterminada, las opciones de radio se seleccionan como «presentes«. Podemos cambiarlo en consecuencia en función del estado de asistencia estudiantil.
La siguiente captura de pantalla muestra el formulario de adición de asistencia estudiantil con una fecha seleccionable y opciones de radio de asistencia.
Conclusión
OOP y MVC no se pueden cubrir detalladamente en un solo artículo, requieren una serie completa para aprender cada aspecto de la misma. Voy a tratar de escribir sobre ellos en detalle en los artículos próximos.
Como ya hemos visto en este artículo y el proyecto de ejemplo adjunto en MVC deben servirle mejor como un proyecto inicial para implementar PHP CRUD usando OOP con el gestor de base de datos MySQLi.
DESCARGA DEL SISTEMA ASISTENCIA
Para que tengan el ejemplo completo, les dejare en un archivo comprimido los componentes necesarios para que funcione.
[sociallocker id=5099] Descargar Ahora [/sociallocker]
Hola Néstor,
¿Es buena práctica crear proyectos en el año 2020 con jquery, más concretamente con la versión 2 con todos sus problemas de seguridad?