Panel de administración que gestiona cualquier tabla sin escribir una línea de código por entidad
La idea de este ejercicio es la más elegante de todos los proyectos académicos: construir un panel de administración que funcione con cualquier tabla de la base de datos sin escribir código específico para ninguna.
El truco está en preguntarle a MySQL por su propia estructura. SHOW
TABLES genera el menú de navegación automáticamente. Un SELECT * …
LIMIT 1 devuelve una fila cuyas claves son los nombres de
las columnas: con eso se pintan las cabeceras de la tabla y se construye el
formulario de inserción campo a campo.
El resultado son cuatro controladores y un enrutador de doce líneas. Añadir una tabla nueva a la base de datos hace que aparezca sola en el menú, con su listado y su formulario funcionando. Cero código adicional.
Ejecuta SHOW TABLES y genera un enlace por tabla, marcando con
la clase activo la que se está consultando.
Pinta la tabla de datos en dos pasadas: primero un LIMIT 1 del
que extrae las claves del array asociativo como cabeceras, y
luego todas las filas como valores.
Construye el formulario dinámicamente recorriendo esas mismas claves: un campo por columna, sin conocer la tabla de antemano.
Monta el INSERT recorriendo $_POST, sustituyendo el
campo id por NULL para que lo asigne la base de
datos.
El index.php es a la vez plantilla y enrutador: incluye la conexión,
pinta el menú y decide qué controlador cargar según el parámetro
?operacion=. Sin operación, muestra el listado. La tabla activa viaja
en ?tabla=.
V0.6-Mejoras esteticas/back/ ├── index.php # plantilla + enrutador ├── controladores/ │ ├── poblar_menu.php # SHOW TABLES → menú │ ├── read.php # listado dinámico │ ├── insertar.php # formulario generado │ └── procesa_insertar.php # INSERT universal ├── inc/ # conexion_bd.php └── css/
INSERT universal.SHOW
TABLES más las claves de un array asociativo bastan para generar una interfaz
completa.$_GET y se concatena directamente en la consulta, igual que los valores
del formulario. Es una inyección SQL evidente y una herramienta que jamás debe
exponerse fuera de un entorno local. Es el contraste directo con los proyectos
posteriores del portafolio, donde uso sentencias preparadas sin excepción.Autor del ejercicio. Práctica individual de la asignatura de programación en el lado del servidor.
Ejercicio académico completado, con las seis versiones en el repositorio de apuntes. Herramienta de aprendizaje, no apta para producción.
Ruta dentro del repositorio: Apuntes/010-Programción en el lado del
servidor/011-Supercontrolador/