Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/bd/ejercicios»

De WikiEducator
Saltar a: navegación, buscar
(Ejercicio CRUD de productos tiendas y familias)
 
(5 revisiones intermedias por el mismo usuario no mostrado)
Línea 2: Línea 2:
 
<br />
 
<br />
 
<br />
 
<br />
 +
===Ejercicio CRUD de productos tiendas y familias===
 +
{{Actividad|Title= Ejercicio CRUD de productos tiendas y familias|
 +
;Se pide el siguiente ejercicio  para gestionar estas tres tablas, donde se especifican los siguientes requisitos funcionales
 +
*RNF1 Debemos de usar mysqli para la sentencia.
 +
*RNF2 Partimos de una base de datos llamada dwes con las tablas y registros ya creados en clase.
 +
*RF1 Aparecerá una pantalla que nos pedirá que nos identifiquemos (el usuario dwes y pass abc123. debe de existir en una tabla llamada usuarios).
 +
*RF2 Una vez identificados aparecerá una pantalla del recurso sitio.php
 +
*RF3 En sitio php veremos nuestro nombre y un botón de logout
 +
[[archivo:ejericico_crud_logout.png|400px|center]]
 +
 +
*RF4 Veremos un botón para poder ver el contenido de cada una de las tablas
 +
[[archivo:ejercicio_crud_tablas_disponibles.png|400px|center]]
 +
*RF5 Al presionar sobre una tabla visualizaremos en forma de tabla html todo su contenido
 +
**RF5.1 En cada fila tendremos dos opciones editar y borrar
 +
**RF5.2 El botón borrar eleminará esa fila de la tabla y se renderizará en el momento el
 +
contenido de la tabla dónde no se verá dicha fila
 +
**RF5.3 El botón Editar nos llevará a otro recurso donde veremos el contendio de esa fila
 +
(ver RF6)
 +
 +
[[archivo:ejercicio_crud_tablas.png|400px|center]]
 +
 +
 +
*RF6 veremos un formulario con los contenidos del registro donde todos los campos, menos el cod serán modificables
 +
**RF6.1 Esta pantalla tendrá el botón guardar y cancelar
 +
**RF6.2 Si presionamos el botón cancelar volvemos a la pantalla anterior sin realizar ningún cambio (la pantalla donde veremos todos los registros de la tabla correspondiente
 +
**RF6.3 Si presionamos guardar se actualizarán los campos de esa tabla y volveremos a la página donde se verán todos los registros de la tabla correspondiente, no pedirá confirmación
 +
*R8 Abrá también un botón para añadir un nuevo registro en la tabla
 +
**RF8.1 Nos abrirá un formulario con los campos para rellenar un nuevo resgistro
 +
**RF8.2 Tendremos un botón de guardar y cancelar
 +
**RF8.3 El botón guardar añadirá el nuevo registro y volveremos a la pantalla inicial mostrando todos los registros de la tabla
 +
**RF8.3 El botón cancelar volverá a la pantalla anterior sin realizar ningún cambio
 +
  donde veremos nuestro nombre y un botón para logout (nos retornaría a la ven
 +
 +
}}
 +
 
==Ejercicios para hacer un CRUD de una base de datos==
 
==Ejercicios para hacer un CRUD de una base de datos==
 
;Los siguientes ejercicios de forma creciente, vamos implementado un crud
 
;Los siguientes ejercicios de forma creciente, vamos implementado un crud
Línea 164: Línea 199:
 
}}
 
}}
  
{{Actividad|Title= Ejercicio CRUD de productos tiendas y familias|
 
;Se pide el siguiente ejercicio  para gestionar estas tres tablas, donde se especifican los siguientes requisitos funcionales
 
*RNF1 Debemos de usar mysqli para la sentencia.
 
*RNF2 Partimos de una base de datos llamada dwes con las tablas y registros ya creados en clase.
 
*RF1 Aparecerá una pantalla que nos pedirá que nos identifiquemos (el usuario dwes y pass abc123. debe de existir en una tabla llamada usuarios).
 
*RF2 Una vez identificados aparecerá una pantalla del recurso sitio.php
 
*RF3 En sitio php veremos nuestro nombre y un botón de logout
 
*RF4 Veremos un botón para poder ver el contenido de cada una de las tablas
 
*RF5 Al presionar sobre una tabla visualizaremos en forma de tabla html todo su contenido
 
**RF5.1 En cada fila tendremos dos opciones editar y borrar
 
**RF5.2 El botón borrar eleminará esa fila de la tabla y se renderizará en el momento el contenido de la tabla dónde no se verá dicha filaç
 
**RF5.3 El botón Editar nos llevará a otro recurso donde veremos el contendio de esa fila (ver RF6)
 
*RF6 veremos un formulario con los contenidos del registro donde todos los campos, menos el cod serán modificables
 
**RF6.1 Esta pantalla tendrá el botón guardar y cancelar
 
**RF6.2 Si presionamos el botón cancelar volvemos a la pantalla anterior sin realizar ningún cambio (la pantalla donde veremos todos los registros de la tabla correspondiente
 
**RF6.3 Si presionamos guardar se actualizarán los campos de esa tabla y volveremos a la página donde se verán todos los registros de la tabla correspondiente, no pedirá confirmación
 
*R8 Abrá también un botón para añadir un nuevo registro en la tabla
 
**RF8.1 Nos abrirá un formulario con los campos para rellenar un nuevo resgistro
 
**RF8.2 Tendremos un botón de guardar y cancelar
 
**RF8.3 El botón guardar añadirá el nuevo registro y volveremos a la pantalla inicial mostrando todos los registros de la tabla
 
**RF8.3 El botón cancelar volverá a la pantalla anterior sin realizar ningún cambio
 
  donde veremos nuestro nombre y un botón para logout (nos retornaría a la ven
 
  
}}
 
 
{{Actividad|Title= Añadir tiendas|
 
{{Actividad|Title= Añadir tiendas|
  

Última revisión de 04:58 18 ene 2023




Ejercicio CRUD de productos tiendas y familias

Icon activity.jpg

Ejercicio CRUD de productos tiendas y familias

Se pide el siguiente ejercicio para gestionar estas tres tablas, donde se especifican los siguientes requisitos funcionales
  • RNF1 Debemos de usar mysqli para la sentencia.
  • RNF2 Partimos de una base de datos llamada dwes con las tablas y registros ya creados en clase.
  • RF1 Aparecerá una pantalla que nos pedirá que nos identifiquemos (el usuario dwes y pass abc123. debe de existir en una tabla llamada usuarios).
  • RF2 Una vez identificados aparecerá una pantalla del recurso sitio.php
  • RF3 En sitio php veremos nuestro nombre y un botón de logout
Ejericico crud logout.png
  • RF4 Veremos un botón para poder ver el contenido de cada una de las tablas
Ejercicio crud tablas disponibles.png
  • RF5 Al presionar sobre una tabla visualizaremos en forma de tabla html todo su contenido
    • RF5.1 En cada fila tendremos dos opciones editar y borrar
    • RF5.2 El botón borrar eleminará esa fila de la tabla y se renderizará en el momento el

contenido de la tabla dónde no se verá dicha fila

    • RF5.3 El botón Editar nos llevará a otro recurso donde veremos el contendio de esa fila

(ver RF6)


  • RF6 veremos un formulario con los contenidos del registro donde todos los campos, menos el cod serán modificables
    • RF6.1 Esta pantalla tendrá el botón guardar y cancelar
    • RF6.2 Si presionamos el botón cancelar volvemos a la pantalla anterior sin realizar ningún cambio (la pantalla donde veremos todos los registros de la tabla correspondiente
    • RF6.3 Si presionamos guardar se actualizarán los campos de esa tabla y volveremos a la página donde se verán todos los registros de la tabla correspondiente, no pedirá confirmación
  • R8 Abrá también un botón para añadir un nuevo registro en la tabla
    • RF8.1 Nos abrirá un formulario con los campos para rellenar un nuevo resgistro
    • RF8.2 Tendremos un botón de guardar y cancelar
    • RF8.3 El botón guardar añadirá el nuevo registro y volveremos a la pantalla inicial mostrando todos los registros de la tabla
    • RF8.3 El botón cancelar volverá a la pantalla anterior sin realizar ningún cambio
 donde veremos nuestro nombre y un botón para logout (nos retornaría a la ven





Ejercicios para hacer un CRUD de una base de datos

Los siguientes ejercicios de forma creciente, vamos implementado un crud

C(create)R(read)U(update)D(Delete)

  • Los dos primeros están con el conector mysqli PDO

Ejercicio 1: Conexión a base de datos



Icon activity.jpg
Crud de la tabla usuarios
  • Vamos a gestionar la tabla usuarios realizando las posibles acciones de:
1.-Insertar
2.-Ver todas las filas
3.-Editar cualquier fila para modificarla
4.-Borrar cualquier fila






Icon activity.jpg
Conexión con gestor de bases de datos mysql
  • Realiza una conexión a una base de datos
  • Podrás establecer la conexión con mysqli o con PDO
  • Los parámetros de conexión se establecerán en un formulario
  • Una vez conectado nos mostrará la siguiente información (En el caso de mysqli):

(https://www.php.net/manual/es/class.mysqli.php)

  1. Versión usada en el cliente (int $client_version;)
  2. Información del host (string $host_info)
  3. versión del protocolo utilizado string $protocol_version;
  4. información del servidor (string $server_info)
  5. Versión utilizada en el servidor de bases de datos (int $server_version);
  • (En el caso de PDO):
(https://www.php.net/manual/es/pdo.getattribute.php)
  1. Version usada en cliente (PDO::ATTR_CLIENT_VERSION)
  2. Estado de la conexión (PDO::ATTR_CONNECTION_STATUS)
  3. Información del servidor(PDO::ATTR_SERVER_INFO)
  4. Versión del servidor BD (PDO::ATTR_CLIENT_VERSION)
  • En el caso de que no hayamos conectado nos mostrará el código de error y una descripción del mismo.
  • La aplicación deberá cerrar la conexión.




Ejercicio 2: Conexión con mysql con fichero ini para leer parámetros



Icon activity.jpg
Conexión con mysql desde un fichero ini
  • Modifica el ejercicio anterior permitiendo que los datos de conexión se aporten en un fichero ini (parse_ini_file)
https://www.php.net/manual/es/function.parse-ini-file.php




Ejercicio 3: Mostrar bases de datos



Icon activity.jpg
Mostrar bases de datos
  • Modifica la aplicación anterior con los siguientes requisitos
  • Nos conectamos al gestor de base de datos (no a una base de datos concreta).
  • Tenemos un submit que nos permitirá ver las bases de datos
  • Para ello ejecutamos la sentencia (con un query)
   show databases
  • Al presionar un submit mostraremos las tablas de esa base de datos </li>
  • No olvides cerrar la conexión.




A partir de ahora, los ejercicios se resolverán con mysqli, siendo el objetivo de la práctica que lo resolváis con PDO

Ejercicio 4: Mostrar las tablas de una base de datos seleccionada



Icon activity.jpg
Mostrar las tablas de una base de datos seleccionada
  • Se trata de modificar el ejercicio anterior para poder ver las tablas de una base de datos
  • Ahora sólo conectaremos con mysqli
  • las bases se visualizarán como inputs de tipo submit
  • Al hacer un click sobre ellas se mostrarán las tablas de esa base de datos
  • Debemos de hacerlo en scripts difernetes según se muestra en la imagen
  • Hay que mantener la conexión en una variable de sesión.

Navegacion show tables.png

  • No olvides cerrar la conexión.





Ejercicio 5: Mostrar en contenido de una tabla



Icon activity.jpg
Mostrar contenido de una tabla
  • Quitamos para simplificar el conectar por fichero ini, solo con el formulario
  • Ahora modificando el ejercicio anterior, las tablas se mostrarán como inputs
  • Al presionar sobre alguno de ellos mostramos las filas de esa tabla.
  • Se puede mostrar con formato de tabla
  • Hay que acceder a los nombres de los campos de las tablas.
  • Seguiremos el siguiente modelo de scrips
  • (Habrá datos que una vez generados debemos guardar en variable de sesión
Navegacion content table 2.png




Ejercicio 6: Insertar filas



Icon activity.jpg
Insertar una fila
  • Ahora modificando el ejercicio anterior, dando la posibilidad de insertar una fila
  • En listado php agregaremos un botón para insertar
  • Si apretamos iremos a un nuevo script donde aparecer un formulario para insertar una fila, o bien cancelar
  • Si presionamos insertar se intenta insertar y se vuelve a listado.php (si todo ok, la veremos en el listado)
  • Si no se ha podido insertar, aparecerá un mensaje delante del listado de la tabla informando de ello
Insert fila.png



Ejercicio 7: Borrar filas



Icon activity.jpg
Borrar una fila
  • Ahora vamos a agregar a cada fila un botón para poder borrar
  • Es posible que al intentar borrar una fila no nos deje por temas de integridad referencial
  • Ahora no necesitamos ningún nuevo script, ya que no hace falta ninguna nueva interfaz (solo agregar el botón borrar en cada fila de la tabla)
Borrar fila.png



Ejercicio 8: Actualizar filas



Icon activity.jpg
Actualizar filas
  • Ahora vamos a agregar a cada fila una nueva acción junto a borrar que será editar
  • Al editar se abrirá un nuevo formuarlio, con tantos inputs como campos tenga la tabla
  • Todos ellos, serán editables, menos los que sean autoincrement
  • Podremos modificar su contenido
  • Tendremos dos acciones, guardar o cancelar. Ambas nos llevarán al recurso listado.php
  • Si no se ha podido actualizar (Problemas restricciones de integridad establecidas), simplemente nos informará que no se ha podido actualizar
  • Si se ha actualizado, veremos los nuevos datos en la tabla
Actualizar fila2.png






Ejercicio 9: Registro de usuarios



Icon activity.jpg
Actividad
 $pass = $_POST['....'];
 $pass_store = password_hash($pass, $tipo_algoritmo); //Aquí la pass queda cifrada usando el algoritmo especificado, p.e  PASSWORD_DEFAULT (constante).
...
$pass = password_verify($_POST['... ']);// pass facilitada en un formulario
if ($pass== $pass_bd)//$pass_bd será la pass que tengo en la base de datos y previamente introduje con password_hash
  • Crea un formulario con un campo de texto para nombre y password
  • En ella el usuario podrá
  1. Registrarse
  2. Visualizar todos los usuarios registrados
  3. Borrar la tabla

LoginRegistrarVisualizar.png

  • Ten en cuenta que se debe de permitir insertar el nombre por ejemplo Peters' Son
para que el usuario se puede registrar
  • Si no aporto nombre o password me informará de ello

NoDatosRegistrarVisualizar.png

  • Si borramos me informará del número de registros borrados

BorradosRegistrarVisualizar.png

  • Al ver usuarios mostrará todos los usuarios que estén en la base de datos

ListadoRegistrarVisualizar.png





}}



Icon activity.jpg

Añadir tiendas


  • Realiza una pequeña app web que añada tiendas a nuestra base de datos dwes
  • En un formulario daremos los valores de tienda y teléfono
  • En un botón submit iniciaremos el proceso y si todo es ok se agragará la tienda en la tabla correspondiente
  • Posteriormente se mostrará el mensaje informando
Se ha agregado la tienda con código XXX nombre: YYY teléfono: ZZZ
  • Se quedará el mismo formulario para poder volver a añadir más tiendas
  • Además visualizaremos debajo del formulario todas las tiendas mejor en una tabla je je .. (Gracias Deyvid).






Icon activity.jpg

Crear tiendas

  • Realiza una pequeña app web que añada tiendas a nuestra base de datos dwes
  • En un formulario daremos los valores de tienda y teléfono
  • En un botón submit iniciaremos el proceso y si todo es ok se agragará la tienda en la tabla correspondiente
  • Posteriormente se mostrará el mensaje informando
Se ha agregado la tienda con código XXX nombre: YYY teléfono: ZZZ
  • Se quedará el mismo formulario para poder volver a añadir más tiendas
  • Además visualizaremos debajo del formulario todas las tiendas mejor en una tabla je je .. (Gracias Deyvid).