Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/bd/practica»
(→Actividad 1 Gestor BD con CRUD básico) |
(→Insertar) |
||
(4 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 4: | Línea 4: | ||
===Actividad 1 Gestor BD con CRUD básico=== | ===Actividad 1 Gestor BD con CRUD básico=== | ||
<br/> | <br/> | ||
− | {{MRM_Actividad|Title=Realizar un gestor básico con acciones CRUD| | + | {{MRM_Actividad| |
+ | ;Realizar un gestor básico con acciones CRUD | ||
+ | ;Un documento con las acciones sobre bases de datos con php | ||
+ | }} | ||
+ | {{MRM_Actividad|Title=Realizar un gestor básico con acciones CRUD | | ||
Vamos a realizar una pequeña aplicación que me permita gestionar a nivel básico la bd. | Vamos a realizar una pequeña aplicación que me permita gestionar a nivel básico la bd. | ||
Concretamente me permitirá | Concretamente me permitirá | ||
Línea 13: | Línea 17: | ||
}} | }} | ||
{{MRM_Actividad|Title=Requisitos no funcionales| | {{MRM_Actividad|Title=Requisitos no funcionales| | ||
− | *Las acciones sobre la base de datos se realizarán en una clase llamada BD.php}} | + | *Las acciones sobre la base de datos se realizarán en una clase llamada BD.php |
+ | *Se debe de usar PDO | ||
+ | *'''''Solo en el fichero BD.php''''' deben de aparacer métodos del recurso PDO. | ||
+ | *En la inserción valora la posibilidad de insertar comillas como parte de la cadena de caracteres. | ||
+ | }} | ||
+ | {{MRM_Actividad|Title=Métodos de Mysqli y PDO| | ||
+ | *Debes de hacer un documento donde especifiques:<br /> | ||
+ | 1.- Las diferentes acciones sobre la base de datos (conectar, ver si se ha conectado, insertar ...)<br /> | ||
+ | 2.- Especificar cómo lo haces y qué tipo de información obtienes con cada recurso (PDO y mysqli)<br /> | ||
+ | }} | ||
+ | |||
{{MRM_Recursos de la Web|Title =GRUD funcionando| | {{MRM_Recursos de la Web|Title =GRUD funcionando| | ||
*Puedes ver la idea del objetivo de esta práctica en esta ubicación | *Puedes ver la idea del objetivo de esta práctica en esta ubicación | ||
Línea 19: | Línea 33: | ||
*Por defecto se puede conectar a un servidor bd dokerizado (ip 172.17.0.2 y root-root como credenciales), pero se puede probar con otro host que tengo un gestor de bases de datos. | *Por defecto se puede conectar a un servidor bd dokerizado (ip 172.17.0.2 y root-root como credenciales), pero se puede probar con otro host que tengo un gestor de bases de datos. | ||
*Los datos de la conexión a la base de datos dockerizada aparecen en el mensaje superior inicial. | *Los datos de la conexión a la base de datos dockerizada aparecen en el mensaje superior inicial. | ||
− | ;http://manuel.infenlaces.com/distancia/practicas/bd_crud/ | + | ;http://manuel.infenlaces.com/distancia/dwes/practicas/bd_crud/ |
+ | *Debes clonarte la estructura del proyecto | ||
+ | ;git clone https://github.com/CPIFPENLACES-ManuelRomero/Distancia-Practica-Crud | ||
+ | *Ten en cuenta que el código está totalmente incompleto, | ||
+ | ;simplemente está preparado para que podáis navegar entre las diferentes páginas. Eso sí que debe funcionar | ||
}} | }} | ||
Línea 88: | Línea 106: | ||
*Tendremos que obtener los nombres de los campos. | *Tendremos que obtener los nombres de los campos. | ||
*Crear una tabla en html donde la primera fila serán los nombres de los campos, y luego cada registro en una fila. | *Crear una tabla en html donde la primera fila serán los nombres de los campos, y luego cada registro en una fila. | ||
− | *Cada registro lo podremos editar (para cambiar) o borrar, esto lo gestionaremos con un botón en cada fila *En la tabla tendremos la acción de Insertar para crear un nuevo registro o | + | *Cada registro lo podremos editar (para cambiar) o borrar, esto lo gestionaremos con un botón en cada fila |
+ | *En la tabla tendremos la acción de '''''Insertar''''' para crear un nuevo registro o '''''Cancelar''''' para volver a la página anterior (tablas.php), y tener la posibilidad de visualizar otra tabla. | ||
*Veamos un diagrama de caso de uso con todas las posibles acciones. | *Veamos un diagrama de caso de uso con todas las posibles acciones. | ||
[[Archivo:appGBD_CRUD_caso3.png|800px|center]] | [[Archivo:appGBD_CRUD_caso3.png|800px|center]] | ||
Línea 99: | Línea 118: | ||
# R3.4 Volver a ver las tablas | # R3.4 Volver a ver las tablas | ||
− | + | ====Visualizar los datos==== | |
Esta es la parte principal del requisito 3. Recibimos la tabla seleccionada por POST (Submit que nos trae a este script), necesitamos también la base de datos que nos puede venir en un '''input''' de tipo '''hidden'''. | Esta es la parte principal del requisito 3. Recibimos la tabla seleccionada por POST (Submit que nos trae a este script), necesitamos también la base de datos que nos puede venir en un '''input''' de tipo '''hidden'''. | ||
− | + | ====Borrar ==== | |
*Para cubrir este objetivo lo que haremos es añadir en cada fila un botón de borrar y otro de editar | *Para cubrir este objetivo lo que haremos es añadir en cada fila un botón de borrar y otro de editar | ||
*Al principio del script analizaremos qué botón he presionada, tendiendo las siguientes posibilidades | *Al principio del script analizaremos qué botón he presionada, tendiendo las siguientes posibilidades | ||
Línea 111: | Línea 130: | ||
#Venimos de la página tablas.php | #Venimos de la página tablas.php | ||
*Lo que haremos es en función de qué acción nos haya traído a esta página, realizar unas acciones u otras que analizaremos en un '''switch case'''. | *Lo que haremos es en función de qué acción nos haya traído a esta página, realizar unas acciones u otras que analizaremos en un '''switch case'''. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===Insertar=== | ===Insertar=== | ||
*Tomaremos a partir del diccionario de datos los campos de la tabla y construiremos un formulario | *Tomaremos a partir del diccionario de datos los campos de la tabla y construiremos un formulario | ||
− | *En esta caso no vamos a tener en cuenta campo de tipo autogenerados, ni restricciones de clave primaria/foránea, | + | *En esta caso no vamos a tener en cuenta campo de tipo autogenerados, ni restricciones de clave primaria/foránea, |
− | + | *Esto puede implicar que alguna inserción no funcione. La aplicación nos informará que no se ha podido insertar debido probablemente a restricciones que no se están respetando |
Última revisión de 08:34 9 abr 2021
Contenido
Actividad 1 Gestor BD con CRUD básico
Vamos a realizar una pequeña aplicación que me permita gestionar a nivel básico la bd. Concretamente me permitirá
|
|
Requisito 1 Visualizar la base de datos
- Se trata de realizar una práctica para administrar una base de datos cualquiera
- Se ha de implementar las acciones de la base de datos en una clase llamada BD.php (base de datos)
- Para incluir las diferentes clases usaremos la función autoload de php
- Observar que es una función que se invoca de forma implícita cuando instancimos un objeto de una clase
- La función tiene un parámetro, el cual es una función anónima (sin nombre) con un parámetro que es el nombre de la clase
- Es en el cuerpo de esta función (parámetro de spl_autoload_register), donde realizamos el require del fichero con la clase correspondiente
spl_autoload_register(function ($clase) { require_once "$clase.php";} );
- Lo primero que debe de aparecer es un formulario con la lista de todas las tablas
- Cada tabla será mostrada con un botón de tipo submit
- Un posible ejemplo de cómo quedaría
- Para el css podemos usar simplemente este código o podéis cambiarlo un poco
Fichero css para estilos |
---|
fieldset{ border: 0.25em solid; align : center; position: absolute; left: 20%; top: 30%; margin-left: -115px; margin-top: -80px; padding:10px; background-color: #eee; } legend{ font-size: 2em; color: green; font-weight: bold; } input[type=submit] { padding:5px 15px 10px 10px; background:#ccc; border:2; cursor:pointer; border-radius: 5px; margin: 1em; font-size: 1em; } |
- A continuación un posible index, usa una clase BD con los métodos de la base de datos
- Puedes usarlo de ejemplo o construirte uno propio index.php
Requisito 2 Visualizar la base de datos
Una vez seleccionada una base de datos, veremos todas las tablas que tiene la base de datos.
Una idea es visualizarlas en botones de tipo submit con el nombre de la tabla.
Todo esto lo implementaremos en un fichero llamado tablas.php.
En esta página daremos la opción de volver a la página anterior para poder seleccionar otra base de datos diferente o conectarnos a otro servidor
El caso de uso se muestra muy sencillo
:
- Un posible ejemplo de cómo quedaría
Requisito 3 Visualizar la base de datos
- Este requisito lo implementamos en el fichero gestionarTabla.php
- Ahora se trata de visualizar el contenido de la base de datos.
- Tendremos que obtener los nombres de los campos.
- Crear una tabla en html donde la primera fila serán los nombres de los campos, y luego cada registro en una fila.
- Cada registro lo podremos editar (para cambiar) o borrar, esto lo gestionaremos con un botón en cada fila
- En la tabla tendremos la acción de Insertar para crear un nuevo registro o Cancelar para volver a la página anterior (tablas.php), y tener la posibilidad de visualizar otra tabla.
- Veamos un diagrama de caso de uso con todas las posibles acciones.
- Este caso de uso es mas amplio que los anteriores, por ello vamos a ir resolviendo cada apartado
- R3.1 Visualizar los datos
- R3.2 Editar para modificar
- R3.3 Borrar
- R3.4 Insetar un nuevo registro
- R3.4 Volver a ver las tablas
Visualizar los datos
Esta es la parte principal del requisito 3. Recibimos la tabla seleccionada por POST (Submit que nos trae a este script), necesitamos también la base de datos que nos puede venir en un input de tipo hidden.
Borrar
- Para cubrir este objetivo lo que haremos es añadir en cada fila un botón de borrar y otro de editar
- Al principio del script analizaremos qué botón he presionada, tendiendo las siguientes posibilidades
- Borrar
- Editar
- Insertar
- Cancelar
- Venimos de la página tablas.php
- Lo que haremos es en función de qué acción nos haya traído a esta página, realizar unas acciones u otras que analizaremos en un switch case.
Insertar
- Tomaremos a partir del diccionario de datos los campos de la tabla y construiremos un formulario
- En esta caso no vamos a tener en cuenta campo de tipo autogenerados, ni restricciones de clave primaria/foránea,
- Esto puede implicar que alguna inserción no funcione. La aplicación nos informará que no se ha podido insertar debido probablemente a restricciones que no se están respetando