Lenguaje PHP

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.

Estructura CRUD PHP OOP MYSQL MVC
Estructura CRUD PHP OOP MYSQL MVC

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.

Base de datos Crud PHP OOP MVC
Base de datos Crud PHP OOP MVC

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.
Agregar estudiante CRUD OOP MVC
Agregar estudiante CRUD OOP MVC
<?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í.

Descargar PHP CRUD usando OOP en MVC
Descargar PHP CRUD usando OOP en MVC

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.

Agregar asistencia Crud OOP MVC MYSQL
Agregar asistencia Crud OOP MVC MYSQL

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.

PHP CRUD usando OOP con MySQLi en MVC
PHP CRUD usando OOP con MySQLi en MVC

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]

 

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

Un comentario

  1. 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?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba