7. Búsqueda y Filtrado de Datos
7.1 Explicación Teórica de la Búsqueda y Filtrado
-
7.1.1 ¿Qué es la búsqueda y el filtrado de datos?
- Definición y propósito de la búsqueda y el filtrado en aplicaciones web.
- ¿Por qué es importante implementar estas funcionalidades?
-
7.1.2 ¿Cómo afecta la búsqueda y el filtrado al modelo MVC?
- Modelo: Cómo se modifican las consultas a la base de datos para incorporar la búsqueda y el filtrado.
- Controlador: Cómo el controlador gestiona las solicitudes de búsqueda y filtrado y las pasa al modelo.
- Controlador central: Cómo se redirigen las solicitudes de búsqueda y filtrado a los controladores específicos.
- Vista: Cómo se presentan los resultados de la búsqueda y el filtrado en la interfaz de usuario.
7.2 Implementación de la Búsqueda
- 7.2.1 Modificación del Modelo para Soportar la Búsqueda
-
Crear una función en el modelo para buscar empleados según un término de búsqueda.
-
7.2.2 Modificación del Controlador para Gestionar la Búsqueda
-
Modificar el controlador para recibir la búsqueda desde la vista y pasarlo al modelo.
-
7.2.3 Modificación de la Vista para la Búsqueda
- Añadir un campo de búsqueda en la vista para que los usuarios puedan ingresar términos de búsqueda.
7.3 Implementación del Filtrado
- 7.3.1 Filtrar por Departamento
-
Crear filtros para mostrar empleados de un departamento específico.
-
7.3.2 Filtrar por Fecha de Contratación y Fecha de Nacimiento
-
Implementar filtros que permitan a los usuarios buscar empleados a partir de una fecha de contratación y fecha de nacimiento.
-
7.3.3 Modificación de la Vista para Filtrar
- Añadir filtros en el menú de navegación y en la vista para mostrar los resultados filtrados.
---
7.1 Explicación Teórica de la Búsqueda y Filtrado
7.1.1 ¿Qué es la búsqueda y el filtrado de datos?
La búsqueda es el proceso de encontrar registros que coincidan con un término de búsqueda específico. En el contexto de nuestra aplicación, el usuario puede ingresar un término en un campo de búsqueda (por ejemplo, un nombre o apellido), y el sistema debería mostrar solo los registros que coincidan con ese término.
El filtrado, por otro lado, es el proceso de restringir los resultados mostrados según criterios específicos. Por ejemplo:
- Filtrar por departamento: Mostrar solo empleados de un departamento específico.
- Filtrar por fechas: Mostrar solo empleados que fueron contratados después de una fecha determinada.
¿Por qué es importante la búsqueda y el filtrado?
- Mejora la experiencia de usuario: Permite a los usuarios encontrar rápidamente lo que están buscando, lo que hace que la aplicación sea más útil y eficiente.
- Reducción de la carga visual: En lugar de mostrar una lista interminable de registros, la búsqueda y el filtrado permiten mostrar solo los datos relevantes.
- Optimización del rendimiento: Filtrar y buscar en la base de datos reduce el número de registros que se tienen que cargar y procesar.
7.1.2 ¿Cómo afecta la búsqueda y el filtrado al modelo MVC?
Modelo:
- El Modelo debe ser modificado para aceptar criterios de búsqueda y filtrado en las consultas SQL. Esto implica agregar cláusulas
WHEREy condiciones dinámicas a las consultas.
Controlador:
- El Controlador se encarga de recibir las solicitudes de búsqueda y filtrado desde la Vista, y luego pasar esos parámetros al Modelo para que la consulta se ejecute adecuadamente.
Vista:
- En la Vista, debemos proporcionar campos de entrada para la búsqueda y los filtros. Los usuarios ingresarán los criterios que desean, y la vista mostrará los resultados basados en esos criterios.
Front controller:
- El Front controller debe ser capaz de manejar las solicitudes de búsqueda y filtrado, redirigiendo a los controladores adecuados y asegurando que los datos se muestren correctamente.
7.2 Implementación de la Búsqueda
7.2.1 Modificación del Modelo para Soportar la Búsqueda
Vamos a modificar el modelo de empleados para que soporte la búsqueda por nombre o apellido.
Código de Empleado.php para la búsqueda:
Explicación:
-
obtenerEmpleados: Ahora acepta un parámetro adicional,$busqueda, que se utiliza para filtrar los empleados por nombre o apellido. Si se pasa un término de búsqueda, la consulta SQL agrega una condiciónWHEREque filtra por los camposfirst_nameylast_name. -
obtenerTotalEmpleados: Esta función devuelve el total de empleados que coinciden con el término de búsqueda, lo cual es necesario para la paginación.
7.2.2 Modificación del Controlador para Gestionar la Búsqueda
Ahora, vamos a modificar el Controlador de Empleados para gestionar las solicitudes de búsqueda y pasarlas al modelo.
Código de EmpleadoControlador.php modificado para la búsqueda:
Explicación:
- El Controlador de Empleados ahora recibe un término de búsqueda desde la vista.
- El término de búsqueda se pasa al Modelo para que los empleados sean filtrados en base al nombre o apellido.
- El controlador también calcula el total de empleados y el número total de páginas para la paginación.
7.2.3. Modificaión del controlador central
El Controlador Central es el encargado de gestionar las solicitudes de búsqueda y filtrado y redirigirlas a los controladores correspondientes (en este caso, al Controlador de Empleados).
Vamos a modificar index.php (el Controlador Principal) para gestionar las solicitudes de búsqueda y filtrado, y pasarlas al Controlador de Empleados.
Código de index.php actualizado para gestionar búsqueda y filtrado:
Explicación:
-
Parámetros de búsqueda:
$busqueda: Si se pasa un término de búsqueda en la URL (por ejemplo,?buscar=Juan), se guarda en este parámetro. Si no se pasa, se usa un valor vacío por defecto.- Este parámetro se pasa al Controlador Principal para que pueda ser utilizado en la lógica de filtrado.
-
Redirección a la acción correspondiente:
- Cuando el parámetro
accionesver_empleados, pasamos todos los parámetros al Controlador de Empleados para que gestione la visualización de los empleados según la búsqueda y los filtros.
- Cuando el parámetro
7.2.4. Modificación de ControladorPrincipal.php para recibir parámetros de búsqueda
Ahora que el Controlador Central pasa la solicitud de búsqueda al controlador adecuado, necesitamos actualizar ControladorPrincipal.php para gestionar las acciones relacionadas con la búsqueda y filtrado de los empleados.
Código de ControladorPrincipal.php actualizado para la búsqueda:
Explicación:
- En el Controlador Principal, la acción
ver_empleadosahora acepta el parámetro$busqueday lo pasa al Controlador de Empleados. $pagina,$ordenarPor,$ordeny$busquedason pasados al Controlador de Empleados, que se encargará de manejar la búsqueda y los filtros correctamente.
7.2.5. Modificación de la Vista empleados.php para Búsqueda
- Añadir un formulario de búsqueda en la vista para que los usuarios puedan ingresar términos de búsqueda (por nombre o apellido).
- Añadir filtros para departamento y fechas.
- Mostrar los empleados filtrados y buscados en una tabla.
- Integrar la paginación con los filtros y la búsqueda.
1. Código de empleados.php actualizado para la búsqueda:
| empleados.php modificado para búsqueda y filtros | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | |
Explicación de los cambios:
-
Formulario de búsqueda y filtros:
- El formulario permite al usuario buscar empleados por nombre o apellido, y aplicar filtros como departamento, fecha de contratación y fecha de nacimiento.
- Los datos del formulario se envían a
index.php, que gestiona las solicitudes de búsqueda y filtrado.
-
Filtros:
- Se incluyen filtros para departamento y fechas, permitiendo que los usuarios puedan afinar su búsqueda de empleados.
- Cada campo tiene un valor predeterminado de vacío si no se aplica ningún filtro.
-
Botones de ordenación:
- Los enlaces de ordenación por ID, nombre y apellido se encuentran en los encabezados de las columnas. Los signos
+y-permiten cambiar el orden entre ascendente y descendente.
- Los enlaces de ordenación por ID, nombre y apellido se encuentran en los encabezados de las columnas. Los signos
-
Paginación:
- La paginación sigue funcionando con los enlaces de Primera, Anterior, Siguiente, Última.
- La paginación se ajusta en función de los empleados filtrados y buscados.