Diferencia entre revisiones de «Usuario:ManuelRomero/NewPHP/B2T8/BasesDatos/ejercicios»

De WikiEducator
Saltar a: navegación, buscar
(Ejercicio 3: Mostrar bases de datos y tablas)
 
(30 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
 
{{:Usuario:ManuelRomero/dwes/B2T8/BasesDatos/nav}}
 
{{:Usuario:ManuelRomero/dwes/B2T8/BasesDatos/nav}}
 
<br />
 
<br />
 +
==Ejercicios básicos==
 +
;Realiza los siguientes ejercicios
  
{{Nota|
+
===Ejercicio 1: Conexión con mysql===
'''''Para todos los ejercicios'''''
+
<br />
*Al menos debe de haber 3 atributos por cada entidad
+
{{MRM_Actividad|Title=Conexión con mysql|
*Se debe de especificar un atributo (o conjunto de atributos) que constituyan la clave para cada entidad
+
*Realiza una conexión a una base de datos utilizando el conectori '''''mysqli'''''
 +
*Previamente has de crear la base de datos con una tabla
 +
<source lang=sql>
 +
create database usuarios;
 +
use  usuarios;
 +
        create table usuario(
 +
              id int not null unique auto_inccremet,
 +
              nombre varchar(40) unique,
 +
              password varchar(200),
 +
        )
 +
</source>
 +
*Los parámetros de conexión se establecerán en un formulario
 +
*Una vez conectado nos mostrará la siguiente información:
 +
(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);
 +
*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===
 +
<br/>
 +
{{MRM_Actividad|Title=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
 +
}}
  
===Base de datos de Empleados===
+
===Ejercicio 3: Mostrar bases de datos y tablas===
 
<br />
 
<br />
{{MRM_Actividad|Title=especificación|
+
{{MRM_Actividad|Title=Mostrar bases de datos|
*Se quiere guardar datos de empleados.
+
*Modifica la aplicación anterior con los siguientes requisitos
*Hay equipos de empleados con determinadas funciones.
+
*Nos conectamos al gestor de base de datos (no a una  base de datos concreta.
*Cada empleado tiene un supervisor que es otro empleado más.
+
*Tenemos un submit que nos permitirá ver las bases de datos
*Un supervisor puede tener varios supervisores.
+
*Al presionar nos aparecerán tantos submit como bases de datos tenemos
*Cada equipo tiene un jefe
+
*Seleccionando una base de datos concreta (haciendo submit) mostraremos loas tablas que hay en esa base de datos
*Un jefe lo es solo de un equipo.
+
*A parte de ello cada equipo tiene un jefe que es un empleado que pertenece al equipo
+
 
}}
 
}}
{{MRM_Actividad|Title=biblioteca|
+
 
*Se quiere guardar datos de empleados.
+
===Ejercicio 4: Mostrar en contenido de una tabla===
*Hay equipos de empleados con determinadas funciones.
+
<br />
*Cada empleado tiene un supervisor que es otro empleado más.
+
{{MRM_Actividad|Title=Mostrar contenido de una tabla|
*Un supervisor puede tener varios supervisores.
+
*Modifica la aplicación anterior con los siguientes requisitos
*Cada equipo tiene un jefe
+
*Al seleccionar una tabla, veremos el contenido de la misma
*Un jefe lo es solo de un equipo.
+
*Para ello se recomienda generar una clase que permita gestionar una tabla html para ver el contendio de una consulta
*A parte de ello cada equipo tiene un jefe que es un empleado que pertenece al equipo
+
*La clase podría tener la estructura
 +
<source lang=php>
 +
Class Tabla{
 +
<?php
 +
 
 +
$titulos;
 +
$contenido;
 +
$html;
 +
 
 +
class Tabla
 +
{
 +
    /**
 +
    *
 +
    * @param array $titulos un array con los t�tulos de cada columna
 +
    * @param array $contenido un array donde cada elemento es una fila.
 +
    */
 +
    public function __construct(array $titulos, array $contenido) {
 +
 
 +
        $this->contenido = $contenido;
 +
        $this->titulos = $titulos;
 +
        $this->html=$this->crea_tabla ();
 +
 
 +
    }
 +
//Implmentar el resto de métodos
 +
 
 +
}
 +
</source>
 +
Los requisitos los podríamos enumerar
 +
;Requisitos anteriores
 +
#Obtener los datos de conexión
 +
#Obtener la base de datos
 +
#Realizar la conexión
 +
;Requisitos añadidos
 +
#Obtener la tabla
 +
#Obtener los nombres de los campos
 +
#OBtener el contenido de la tabla
 +
#Mostrar el contenido con un formato de tabla html
 +
 
 
}}
 
}}
  
 +
{{MRM_Actividad|Tilte=Insertar registros|
 +
*Añade la opción de insertar nuevos usuarios a la tabla
 +
}}
  
  
  
<!--
+
 
{{Actividad|Title= Crear tiendas|
+
{{MRM_Actividad|Title=Cargar la base de datos dwes|
 +
*Carga la base de datos que a continuación se aporta
 +
{{Plegable|hide|Base de datos ''''dwes''''|
 +
<soruce lang=sql>
 +
</source> }}
 +
*Modifica la aplicación anterior para mostrar todas las tablas que hay en la base de datos
 +
*Cada tabla será un submit
 +
*Al hacer click sobre una tabla concreta, se mostrará todo el contenido de la tabla en una tabla concreta
 +
}}
 +
 
 +
 
 +
{{MRM_Actividad|Title= Crear 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 47: Línea 124:
  
 
}}
 
}}
{{Actividad|
+
{{MRM_Actividad|
 
*Realiza una aplicación que permita registrar usuarios o bien visualizarlos
 
*Realiza una aplicación que permita registrar usuarios o bien visualizarlos
 
*La password ha de estar cifrada (md5)
 
*La password ha de estar cifrada (md5)
Línea 76: Línea 153:
  
  
{{Actividad|Title=Gestión productos|
+
{{MRM_Actividad|Title=Gestión productos|
 
;PRACTICA DE BASES DE DATOS USANDO PDO
 
;PRACTICA DE BASES DE DATOS USANDO PDO
 
*Partiendo de la base de datos '''''dwes''''' usada en la explicación de este tema ,se pide que realicéis una aplicación que permita gestionar los registros de la tabla '''productos'''.
 
*Partiendo de la base de datos '''''dwes''''' usada en la explicación de este tema ,se pide que realicéis una aplicación que permita gestionar los registros de la tabla '''productos'''.
Línea 437: Línea 514:
  
 
}}
 
}}
-->
 

Última revisión de 08:50 26 mar 2020



Ejercicios básicos

Realiza los siguientes ejercicios

Ejercicio 1: Conexión con mysql



Icon activity.jpg
Conexión con mysql
  • Realiza una conexión a una base de datos utilizando el conectori mysqli
  • Previamente has de crear la base de datos con una tabla
CREATE DATABASE usuarios;
USE  usuarios;
        CREATE TABLE usuario(
              id INT NOT NULL UNIQUE auto_inccremet,
              nombre VARCHAR(40) UNIQUE,
              password VARCHAR(200),
        )
  • Los parámetros de conexión se establecerán en un formulario
  • Una vez conectado nos mostrará la siguiente información:

(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 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 y tablas



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
  • Al presionar nos aparecerán tantos submit como bases de datos tenemos
  • Seleccionando una base de datos concreta (haciendo submit) mostraremos loas tablas que hay en esa base de datos




Ejercicio 4: Mostrar en contenido de una tabla



Icon activity.jpg
Mostrar contenido de una tabla
  • Modifica la aplicación anterior con los siguientes requisitos
  • Al seleccionar una tabla, veremos el contenido de la misma
  • Para ello se recomienda generar una clase que permita gestionar una tabla html para ver el contendio de una consulta
  • La clase podría tener la estructura
Class Tabla{
<?php
 
$titulos;
$contenido;
$html;
 
class Tabla
{
    /**
     *
     * @param array $titulos un array con los t�tulos de cada columna
     * @param array $contenido un array donde cada elemento es una fila.
     */
    public function __construct(array $titulos, array $contenido) {
 
        $this->contenido = $contenido;
        $this->titulos = $titulos;
        $this->html=$this->crea_tabla ();
 
    }
//Implmentar el resto de métodos
 
}

Los requisitos los podríamos enumerar

Requisitos anteriores
  1. Obtener los datos de conexión
  2. Obtener la base de datos
  3. Realizar la conexión
Requisitos añadidos
  1. Obtener la tabla
  2. Obtener los nombres de los campos
  3. OBtener el contenido de la tabla
  4. Mostrar el contenido con un formato de tabla html





Icon activity.jpg
Actividad
  • Añade la opción de insertar nuevos usuarios a la tabla







Icon activity.jpg
Cargar la base de datos dwes
  • Carga la base de datos que a continuación se aporta
  • Modifica la aplicación anterior para mostrar todas las tablas que hay en la base de datos
  • Cada tabla será un submit
  • Al hacer click sobre una tabla concreta, se mostrará todo el contenido de la tabla en una tabla concreta






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





}}


Icon activity.jpg
Actividad
  • Realiza una aplicación que permita registrar usuarios o bien visualizarlos
  • La password ha de estar cifrada (md5)
 $pass = $_POST['....'];
 $pass = md5($pass); //Aquí la pass queda cifrada usando la función md5
  • 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

Aqui puedes ver un ejemplo de la aplicación http://manuel.infenlaces.com/dwes/RegistrarUsuarios/

Icon present.gif
Tip: Si pide indentificarse accede con alumno/fuina







Icon activity.jpg
Gestión productos
PRACTICA DE BASES DE DATOS USANDO PDO
  • Partiendo de la base de datos dwes usada en la explicación de este tema ,se pide que realicéis una aplicación que permita gestionar los registros de la tabla productos.
  • La aplicación se dividirá entres páginas web:
1 listado.php.
  • Mostrara un cuadro desplegable que permita seleccionar un registro de la tabla familias, junto a un botón "Mostrar". *Al pulsar el botón, se mostrará un listado de los productos de la familia seleccionada.
  • Para cada producto, se mostrará su nombre corto y su PVP, junto a un botón con el texto Editar (se puede usar como opción crear un formulario distinto por cada producto).
  • Cuando se pulse ese botón, se enviará el formulario a la página editar.php.
2 Editar.php
  • Debe mostrar los datos del producto seleccionado en la página anterior (nombre corto, nombre, descripción y PVP) dentro de un formulario que permita cambiarlos, y dos botones: Actualizar y Cancelar. El formulario se enviará a la página actualizar.php.
3 actulizar.php
  • Esta página simplemente redirige a la página listado.php, pero si en el formulario anterior se ha pulsado Actualizar (y no Cancelar),
  • antes de redirigir debe ejecutar una consulta para cambiar los datos del producto.
  • Para redirigir se puede utilizar un formulario con un botón "Continuar" o bien dentro del encabezado la etiqueta
 <meta http-equiv='refresh' content='1'; url=>

Para acceder a la base de datos se debe usar mysql, realizando todas las consultas parametrizadas.