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

De WikiEducator
Saltar a: navegación, buscar
Línea 4: Línea 4:
 
{{Actividad|Title=Gestión productos|
 
{{Actividad|Title=Gestión productos|
 
;PRACTICA DE BASES DE DATOS USANDO Mysqli
 
;PRACTICA DE BASES DE DATOS USANDO Mysqli
 +
{{MRM_Web|
 +
*Clona el proyecto
 +
git clone https://github.com/MAlejandroR/PracticaProductos.git
 +
*Puedes probar su ejecución
 +
http://www.manuel.infenlaces.com/distancia/practicas/practica_7_productos/listado.php
 +
}}
 
*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'''.
*Los datos de conexion se tomarán de un fichero ini '''''conexion.ini'''''
+
*Los datos de conexión se tomarán de un fichero ini '''''conexion.ini'''''
  
 
*Es una aplicación sencilla que se pide que se divida en tres páginas web o recursos:
 
*Es una aplicación sencilla que se pide que se divida en tres páginas web o recursos:
;1 listado.php.
+
;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.  
 
*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''''' .  
 
*Para cada producto, se mostrará su nombre corto y su PVP, junto a un botón con el texto '''''Editar''''' .  
 
*Cuando se pulse ese botón, se enviará el formulario a la página '''editar.php'''.
 
*Cuando se pulse ese botón, se enviará el formulario a la página '''editar.php'''.
 +
<br />
 
[[Archivo:listado_productos.jpg]]
 
[[Archivo:listado_productos.jpg]]
;2 Editar.php:  
+
<br />
 +
;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:  
 
*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'''.  
+
*'''Actualizar''' y '''Cancelar'''.  
 +
<br />
 
[[Archivo:editar_productos.jpg]]
 
[[Archivo:editar_productos.jpg]]
 +
<br />
 
*Cada botón realizará  la tarea esperada
 
*Cada botón realizará  la tarea esperada
 
*Si apretamos el botón actualizar nos llevará a una página que nos mostrará la información de que se ha actualizado el productos ( si así se ha hecho).
 
*Si apretamos el botón actualizar nos llevará a una página que nos mostrará la información de que se ha actualizado el productos ( si así se ha hecho).
 
*Pasados 5 segundos nos redirigirá a '''''listado.php'''''
 
*Pasados 5 segundos nos redirigirá a '''''listado.php'''''
 +
<br />
 
[[Archivo:actualizar_productos.jpg]]
 
[[Archivo:actualizar_productos.jpg]]
 
+
<br />
*Para acceder a la base de datos se debe usar mysqli, realizando todas las consultas parametrizadas.
+
*Para acceder a la base de datos se debe usar '''''mysqli''''', realizando todas las consultas parametrizadas.
 
*En el contenido de los diferentes campos pueden aparecer tanto comillas simples como dobles, como parte del texto a insertar
 
*En el contenido de los diferentes campos pueden aparecer tanto comillas simples como dobles, como parte del texto a insertar
[[Archivo:actualizar_productos.jpg]]
+
*Ejemplo de posible valor
Ejemplo de posible valor
+
[[Archivo:actualizar_productos1.jpg]]
[[Archivo:actualizar_productos_1.jpg]]
+
<br />
Se tiene que visualizar
+
*Se tiene que visualizar
[[Archivo:actualizar_productos_2.jpg]]
+
[[Archivo:actualizar_productos2.jpg]]
*Después de actulizar un producto, y estar durante 5 segundos en la ventana '''''actualizar.php'''' volveremos a listado.php mostrando los productos de la última familia seleccionada.
+
<br />
 +
*Después de actualizar un producto, y estar durante 5 segundos en la ventana '''''actualizar.php'''' volveremos a listado.php mostrando los productos de la última familia seleccionada.
 
*Todos los métodos de la base de datos tienen que ser estáticos (Usaremos la clase DB.php como si fuera una librería)
 
*Todos los métodos de la base de datos tienen que ser estáticos (Usaremos la clase DB.php como si fuera una librería)
 
*Es importante que al seleccionar una familia y aparecer los productos de esa familia, se quede seleccionada la misma familia en el '''''input select''''' .
 
*Es importante que al seleccionar una familia y aparecer los productos de esa familia, se quede seleccionada la misma familia en el '''''input select''''' .
  
 
{{Plegable|hide|Plantilla.php|
 
<source lang=php>
 
<!doctype html>
 
<html lang="en">
 
<head>
 
    <meta charset="UTF-8">
 
    <title>Document</title>
 
</head>
 
<body>
 
  <title>Plantilla para Ejercicios BD</title>
 
  <link href="dwes.css" rel="stylesheet" type="text/css">
 
</head>
 
 
<body>
 
 
<div id="encabezado">
 
<h1>Ejercicio: </h1>
 
<form id="form_seleccion" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
 
</form>
 
</div>
 
 
<div id="contenido">
 
<h2>Contenido</h2>
 
</div>
 
 
<div id="pie">
 
</div>
 
</body>
 
</html>
 
</source>
 
}}
 
 
{{Plegable|hide|estilo.css|
 
<source lang=css>
 
.error {
 
  font-family: Verdana, Arial, sans-serif;
 
  font-size: 0.7em;
 
  color: #900;
 
  background-color : #ffff00;
 
}
 
 
.divisor {
 
  clear:both;
 
  height:0;
 
  font-size: 1px;
 
  line-height: 0px;
 
}
 
 
#login fieldset {
 
  position: absolute;
 
  left: 50%;
 
  top: 50%;
 
  width: 230px;
 
  margin-left: -115px;
 
  height: 160px;
 
  margin-top: -80px;
 
  padding:10px;
 
  border:1px solid #ccc;
 
  background-color: #eee;
 
}
 
 
#login legend {
 
  font-family : Arial, sans-serif;
 
  font-size: 1.3em;
 
  font-weight:bold;
 
  color:#333;
 
}
 
 
#login .campo {
 
  margin-top:8px;
 
  margin-bottom: 10px;
 
}
 
 
#login label {
 
  font-family : Arial, sans-serif;
 
  font-size:0.8em;
 
  font-weight: bold;
 
}
 
 
 
#login input[type="text"], #login input[type="password"] {
 
  font-family : Arial, Verdana, sans-serif;
 
  font-size: 0.8em;
 
  line-height:140%;
 
  color : #000;
 
  padding : 3px;
 
  border : 1px solid #999;
 
  height:18px;
 
  width:220px;
 
}
 
 
#login input[type="submit"] {
 
  width:100px;
 
  height:30px;
 
  padding-left:0px;
 
}
 
 
.pagproductos body, .pagcesta body  {
 
  font: 100% Verdana, Arial, Helvetica, sans-serif;
 
  background: #666;
 
  margin: 0;
 
  padding: 0;
 
  text-align: center;
 
  color: #000000;
 
}
 
 
#contenedor {
 
  width: 90%;
 
  background: #fff;
 
  margin: 0 auto;
 
  border: 1px solid #000;
 
  text-align: left;
 
}
 
 
#encabezado {
 
  padding: 0 10px;
 
  border-top-width: thin;
 
  border-right-width: thin;
 
  border-bottom-width: thin;
 
  border-left-width: thin;
 
  border-top-style: solid;
 
  border-right-style: solid;
 
  border-bottom-style: solid;
 
  border-left-style: solid;
 
  background-color: #9cf;
 
}
 
 
#encabezado h1 {
 
  margin: 0;
 
  padding: 10px 0;
 
}
 
.pagproductos #cesta {
 
  float: right;
 
  width: 12em;
 
  background-color: #588;
 
}
 
.pagproductos #cesta h3 {
 
  margin-left: 10px;
 
  margin-right: 10px;
 
}
 
.pagproductos #cesta p {
 
  margin-left: 10px;
 
  margin-right: 10px;
 
  font-size: 10px;
 
}
 
 
.pagproductos #cesta input[type="submit"] {
 
  margin-left: 10px;
 
  margin-right: 10px;
 
  margin-bottom: 3px;
 
  width:100px;
 
  height:30px;
 
  padding-left:0px;
 
}
 
 
.pagproductos #productos {
 
  margin: 0 10em 0 10px;
 
}
 
 
.pagcesta #productos {
 
  margin: 10px;
 
  font-size: 12px;
 
}
 
 
.pagproductos #productos input, .pagproductos #productos p {
 
  font-size: 10px;
 
}
 
 
#productos .codigo {
 
  width: 20%;
 
  float: left;
 
}
 
 
#productos .nombre {
 
  width: 60%;
 
  float: left;
 
}
 
 
#productos .precio {
 
  width: 20%;
 
  text-align: right;
 
  font-weight: bold;
 
}
 
 
#pie {
 
  padding: 0 10px;
 
  background-color: #99ccff;
 
  border-top-width: thin;
 
  border-right-width: thin;
 
  border-bottom-width: thin;
 
  border-left-width: thin;
 
  border-top-style: solid;
 
  border-right-style: solid;
 
  border-bottom-style: solid;
 
  border-left-style: solid;
 
}
 
</source>
 
}}
 
 
{{Plegable|hide|Datos.sql|
 
{{Plegable|hide|Datos.sql|
 +
: Se estenderá en ancho, usa scroll horizontal para pestaña de cerra.
 
<source lang=sql>
 
<source lang=sql>
 
USE `dwes`;
 
USE `dwes`;

Revisión de 05:53 31 mar 2020





Icon activity.jpg

Gestión productos

PRACTICA DE BASES DE DATOS USANDO Mysqli



  • 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.
  • Los datos de conexión se tomarán de un fichero ini conexion.ini
  • Es una aplicación sencilla que se pide que se divida en tres páginas web o recursos:
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 .
  • Cuando se pulse ese botón, se enviará el formulario a la página editar.php.


Listado productos.jpg

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.


Editar productos.jpg

  • Cada botón realizará la tarea esperada
  • Si apretamos el botón actualizar nos llevará a una página que nos mostrará la información de que se ha actualizado el productos ( si así se ha hecho).
  • Pasados 5 segundos nos redirigirá a listado.php


Actualizar productos.jpg

  • Para acceder a la base de datos se debe usar mysqli, realizando todas las consultas parametrizadas.
  • En el contenido de los diferentes campos pueden aparecer tanto comillas simples como dobles, como parte del texto a insertar
  • Ejemplo de posible valor

Archivo:Actualizar productos1.jpg

  • Se tiene que visualizar

Archivo:Actualizar productos2.jpg

  • Después de actualizar un producto, y estar durante 5 segundos en la ventana actualizar.php' volveremos a listado.php mostrando los productos de la última familia seleccionada.
  • Todos los métodos de la base de datos tienen que ser estáticos (Usaremos la clase DB.php como si fuera una librería)
  • Es importante que al seleccionar una familia y aparecer los productos de esa familia, se quede seleccionada la misma familia en el input select .