|
|
Línea 171: |
Línea 171: |
| *RF2 Una vez identificados aparecerá una pantalla del recurso sitio.php | | *RF2 Una vez identificados aparecerá una pantalla del recurso sitio.php |
| *RF3 En sitio php veremos nuestro nombre y un botón de logout | | *RF3 En sitio php veremos nuestro nombre y un botón de logout |
| + | {{archive:ejericico_crud_logoun.png}} |
| + | |
| *RF4 Veremos un botón para poder ver el contenido de cada una de las tablas | | *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 Al presionar sobre una tabla visualizaremos en forma de tabla html todo su contenido |
Revisión de 04:31 18 ene 2023
Bases de datos: El servidor es fundamental
¡Las bases de datos: Parte fundamental en el servidor de desarrollos web
PHP Un lenguaje de script al lado del servidor
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
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
|
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)
- Versión usada en el cliente (int $client_version;)
- Información del host (string $host_info)
- versión del protocolo utilizado string $protocol_version;
- información del servidor (string $server_info)
- Versión utilizada en el servidor de bases de datos (int $server_version);
(https://www.php.net/manual/es/pdo.getattribute.php)
- Version usada en cliente (PDO::ATTR_CLIENT_VERSION)
- Estado de la conexión (PDO::ATTR_CONNECTION_STATUS)
- Información del servidor(PDO::ATTR_SERVER_INFO)
- 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.
|
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)
- 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
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.
- No olvides cerrar la conexión.
|
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
|
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
|
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)
|
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
|
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á
- Registrarse
- Visualizar todos los usuarios registrados
- Borrar la tabla
- 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
- Si borramos me informará del número de registros borrados
- Al ver usuarios mostrará todos los usuarios que estén en la base de datos
|
}}
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
Plantilla:Archive:ejericico crud logoun.png
- 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
|
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).
|
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).
|