|
|
Línea 10: |
Línea 10: |
| | | |
| <br /> | | <br /> |
| + | {{MRM_Actividad|Title=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 |
| + | }} |
| + | |
| + | |
| + | |
| {{MRM_Actividad|Title=Conexión con gestor de bases de datos mysql| | | {{MRM_Actividad|Title=Conexión con gestor de bases de datos mysql| |
| *Realiza una conexión a una base de datos | | *Realiza una conexión a una base de datos |
Revisión de 18:07 7 abr 2022
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
|
}}
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).
|
}}