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

De WikiEducator
Saltar a: navegación, buscar
(Ejercicio 1: Conexión a base de datos)
Línea 164: Línea 164:
 
}}
 
}}
  
{{Actividad|Title= Crear tiendas|
+
{{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|
 +
 
 +
 
 
*Realiza una pequeña app web que añada tiendas a nuestra base de datos '''''dwes'''''
 
*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 formulario daremos los valores de '''tienda''' y '''teléfono'''
Línea 173: Línea 199:
 
*Además  visualizaremos debajo del formulario todas las tiendas  mejor en una tabla je je .. (Gracias Deyvid).
 
*Además  visualizaremos debajo del formulario todas las tiendas  mejor en una tabla je je .. (Gracias Deyvid).
 
}}
 
}}
 
+
{{Actividad|Title= 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).
 
}}
 
}}

Revisión de 04:55 15 ene 2023




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

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






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).