30.01.2015 Views

Click here to get the file - OCW Universidad de Cantabria

Click here to get the file - OCW Universidad de Cantabria

Click here to get the file - OCW Universidad de Cantabria

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Bases <strong>de</strong> Da<strong>to</strong>s<br />

Tema 05. Pro<strong>to</strong>tipo <strong>de</strong> una aplicación <strong>de</strong> base <strong>de</strong> da<strong>to</strong>s<br />

Marta Elena Zorrilla Pantaleón<br />

Rafael Duque Medina<br />

DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y<br />

COMPUTACIÓN<br />

Este tema se publica bajo Licencia:<br />

Creative Commons BY-NC-SA 3.0


Tabla <strong>de</strong> contenidos<br />

Introducción<br />

Base <strong>de</strong> da<strong>to</strong>s utilizada<br />

Estructura <strong>de</strong> la aplicación<br />

Material complementario: formularios con PHP


Bibliografía<br />

Schafer, Steven M. HTML, XHTML y CSS. Anaya<br />

Multimedia, 2010.<br />

Cosentino, Chris<strong>to</strong>pher. Guía esencial <strong>de</strong> PHP. Prentice<br />

Hall, 2001.<br />

Charte Ojeda, Francisco. PHP 5. Guía práctica para<br />

usuarios. Anaya Multimedia, 2005.<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

3


Introducción<br />

A continuación se presenta el pro<strong>to</strong>tipo <strong>de</strong> una aplicación<br />

que gestiona la información relativa a una empresa <strong>de</strong><br />

envíos <strong>de</strong> pizzas a domicilio<br />

La aplicación está disponible mediante acceso web<br />

Las tecnologías que han sido utilizadas son las siguientes:<br />

<br />

<br />

<br />

HTML/CSS: Lenguajes para mostrar, publicar y dar forma<strong>to</strong> a la<br />

información en la web<br />

PHP: Lenguaje para acce<strong>de</strong>r y manipular la información <strong>de</strong> la base <strong>de</strong><br />

da<strong>to</strong>s<br />

SQL Server 2008: Sistema Ges<strong>to</strong>r <strong>de</strong> Base <strong>de</strong> Da<strong>to</strong>s<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

4


Base <strong>de</strong> da<strong>to</strong>s<br />

La base <strong>de</strong> da<strong>to</strong>s utilizada almacena <strong>to</strong>da la información<br />

relacionada con la pizzería (clientes, empleados, pedidos,<br />

etc.)<br />

La pizzería no ofrece pizzas establecidas previamente,<br />

como es lo habitual en la mayoría <strong>de</strong> es<strong>to</strong>s negocios<br />

don<strong>de</strong> se ofertan pizzas cuatro quesos, margarita, etc.<br />

En esta pizzería los clientes <strong>de</strong>ben registrarse en una<br />

aplicación web y tiene que configurar sus propias pizzas<br />

mediante la selección <strong>de</strong> los ingredientes y la base<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

5


Base <strong>de</strong> da<strong>to</strong>s<br />

Los clientes pue<strong>de</strong>n solicitar a la pizzería un pedido que<br />

<strong>de</strong>be constar <strong>de</strong> una o más pizzas<br />

Un mismo cliente pue<strong>de</strong> realizar varios pedidos y en cada<br />

uno <strong>de</strong> ellos utilizar un medio <strong>de</strong> pago distin<strong>to</strong> (pago en<br />

efectivo, tarjeta <strong>de</strong> crédi<strong>to</strong>, etc.)<br />

En <strong>to</strong>do momen<strong>to</strong> es necesario conocer en qué estado se<br />

encuentra el pedido <strong>de</strong> un cliente (en cocina, el mo<strong>to</strong>rista<br />

lo está transportando, ya ha sido entregado, etc. )<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

6


Base <strong>de</strong> da<strong>to</strong>s<br />

Un pizza podrá estar formada por varios ingredientes,<br />

pero tendrá una única base<br />

Pizzas<br />

codigo<br />

pedido<br />

base<br />

importeBase<br />

importe<br />

Ingredientes<br />

codigo<br />

<strong>de</strong>scripcion<br />

importe<br />

IngredienteDePizza<br />

pizza<br />

ingrediente<br />

importe<br />

Bases<br />

codigo<br />

<strong>de</strong>scripcion<br />

importe<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

7


Base <strong>de</strong> da<strong>to</strong>s<br />

La base <strong>de</strong> da<strong>to</strong>s almacena la información <strong>de</strong> los pedidos<br />

Es necesario saber qué cliente solicita cada pedido y el<br />

trabajador (personal) <strong>de</strong> la empresa que gestiona el<br />

pedido<br />

Personal<br />

codigo<br />

nif<br />

nombre<br />

apellido1<br />

apellido2<br />

telefono<br />

email<br />

calle<br />

numero<br />

piso<br />

puerta<br />

localidad<br />

fechaAlta<br />

fechaBaja<br />

localida<strong>de</strong>s<br />

codigo<br />

nombre<br />

codigopostal<br />

Clientes<br />

codigo<br />

nif<br />

nombre<br />

apellido1<br />

apellido2<br />

telefono<br />

calle<br />

numero<br />

letra<br />

piso<br />

puerta<br />

observaciones<br />

localidad<br />

Pedidos<br />

codigo<br />

iva<br />

FechaHoraPedido<br />

FechaHoraServicio<br />

observaciones<br />

estado<br />

cliente<br />

personal<br />

pago<br />

importe<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

8


Base <strong>de</strong> da<strong>to</strong>s<br />

Un mismo pedido pue<strong>de</strong><br />

incluir más <strong>de</strong> una pizza<br />

De cada pedido es preciso<br />

conocer en qué estado se<br />

encuentra<br />

Pedidos<br />

codigo<br />

iva<br />

FechaHoraPedido<br />

FechaHoraServicio<br />

observaciones<br />

estado<br />

cliente<br />

personal<br />

pago<br />

importe<br />

Estados<br />

codigo<br />

<strong>de</strong>scripcion<br />

MediosPago<br />

codigo<br />

<strong>de</strong>scripcion<br />

También es necesario<br />

conocer el medio <strong>de</strong> pago<br />

utilizado para abonar el<br />

importe <strong>de</strong>l pedido<br />

Pizzas<br />

codigo<br />

pedido<br />

base<br />

importeBase<br />

importe<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

9


Sistema web<br />

Se ha diseñado un sistema web que permite al usuario<br />

gestionar la información <strong>de</strong> <strong>to</strong>das las tablas <strong>de</strong> la base <strong>de</strong><br />

da<strong>to</strong>s<br />

Este sistema web está diseñado como una página <strong>de</strong> inicio<br />

que da acceso mediante hipervínculos a los formularios e<br />

informes programados<br />

Presenta dos tipos <strong>de</strong> formularios:<br />

<br />

<br />

Maestros: formularios que permiten al usuario manipular la información<br />

<strong>de</strong> una única tabla <strong>de</strong> la base <strong>de</strong> da<strong>to</strong>s. En nuestro caso sólo se ha<br />

programado la gestión <strong>de</strong> clientes<br />

Maestro-<strong>de</strong>talle: formularios que permiten al usuario manipular la<br />

información <strong>de</strong> varias tablas<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

10


Sistema web: Formulario Maestro<br />

<br />

Esta página permite gestionar la tabla cliente<br />

Inicialmente muestra la información <strong>de</strong> <strong>to</strong>dos los clientes visualizados <strong>de</strong> 10<br />

en 10. El funcionamien<strong>to</strong> <strong>de</strong> la misma se <strong>de</strong>scribe en la imagen<br />

Rellenando alguno <strong>de</strong> es<strong>to</strong>s campos y pulsando en Buscar, filtramos<br />

los clientes por los parámetros que hemos especificado<br />

Este enlace<br />

permite<br />

dar<br />

<strong>de</strong> alta un<br />

nuevo<br />

cliente<br />

Haciendo clic en el botón que muestra el código <strong>de</strong>l cliente, acce<strong>de</strong>mos a un<br />

formulario don<strong>de</strong> po<strong>de</strong>mos manipular los da<strong>to</strong>s <strong>de</strong> ese cliente<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

Con es<strong>to</strong>s<br />

bo<strong>to</strong>nes<br />

navegamos a<br />

través<br />

<strong>de</strong> <strong>to</strong>dos los<br />

clientes<br />

11


Sistema web: Formulario Maestro ( y 2)<br />

<br />

Cuando se pulsa sobre el código <strong>de</strong>l cliente (ver imagen previa) aparece<br />

este formulario que permite modificar la información <strong>de</strong>l cliente<br />

seleccionado o borrar el registro si fuese necesario<br />

Botón para modificar los da<strong>to</strong>s<br />

<strong>de</strong>l cliente según lo que se<br />

observa en pantalla<br />

Botón para eliminar el cliente<br />

mostrado en la pantalla<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

12


Sistema web: Formulario maestro<strong>de</strong>talle<br />

<br />

Este formulario permite modificar la información <strong>de</strong> tres tablas: pedidos,<br />

pizzas e ingredientes <strong>de</strong> pizza para que sea tratado <strong>to</strong>do como una unidad<br />

En primer<br />

lugar<br />

i<strong>de</strong>ntificamos<br />

al cliente<br />

Damos <strong>de</strong> alta<br />

un nuevo<br />

pedido con<br />

una o varias<br />

pizzas y sus<br />

respectivos<br />

ingredientes<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

13


Organización <strong>de</strong> los módulos<br />

programados<br />

La aplicación se ha estructurado en tres módulos:<br />

<br />

<br />

<br />

Carpeta CSS: Incluye el archivo style.css con el forma<strong>to</strong> que tendrá la<br />

interfaz <strong>de</strong> usuario (color <strong>de</strong> los tex<strong>to</strong>s, tipo <strong>de</strong> letra utilizado, etc.)<br />

Carpeta principal: Incluye varios archivos:<br />

<br />

<br />

<br />

El archivo hea<strong>de</strong>r.php incluye el menú <strong>de</strong> la página web con los hipervínculos<br />

para navegar entre páginas<br />

El archivo funciones.php incluye las funciones para acce<strong>de</strong>r a la base <strong>de</strong> da<strong>to</strong>s<br />

y manipular la información <strong>de</strong> <strong>to</strong>das las tablas (<strong>to</strong>das las funciones están<br />

comentadas para facilitar su uso)<br />

El archivo generaFacturaPDF.php incluye una función para generar en fichero<br />

PDF la factura <strong>de</strong> un pedido<br />

Carpeta tcpdf: Es una librería con soporte adicional para crear archivos<br />

pdf (es invocada por generaFacturaPDF.php)<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

14


Instalación <strong>de</strong> la aplicación<br />

Para instalar y ejecutar correctamente la aplicación hay que<br />

seguir los siguientes tres pasos:<br />

1. Instalación <strong>de</strong>l paquete XAMPP y SQL Server 2008 (ver las<br />

instrucciones en las diapositivas correspondientes)<br />

2. Descomprimir el contenido <strong>de</strong>l archivo pizerria.zip que contiene los<br />

archivos <strong>de</strong> la aplicación en la carpeta httdocs creada por el paquete<br />

XAMPP durante su instalación<br />

3. Ejecutar el script pizzeria.sql en SQL Server 2008 para crear la base <strong>de</strong><br />

da<strong>to</strong>s e insertar la información en las tablas<br />

4. Es necesario actualizar los scripts PHP modificando la función que<br />

gestiona la conexión a la base <strong>de</strong> da<strong>to</strong>s ya que será necesario<br />

especificar los da<strong>to</strong>s (servidor, login, password, etc.) que posibilitan la<br />

conexión<br />

5. Arrancar la aplicación abriendo un navegador y escribiendo<br />

http://localhost/pizzeria/in<strong>de</strong>x.php<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

15


Instalación <strong>de</strong> la aplicación (y 2)<br />

<br />

<br />

La función conectar incluida en el archivo funciones.php gestiona la conexión<br />

a la base <strong>de</strong> da<strong>to</strong>s<br />

En caso <strong>de</strong> utilizar la autentificación integrada <strong>de</strong> Windows únicamente hay<br />

que especificar el servidor don<strong>de</strong> se ubica el SGBD y la base <strong>de</strong> da<strong>to</strong>s a la<br />

que queremos conectarnos<br />

Servidor<br />

Base <strong>de</strong><br />

da<strong>to</strong>s<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

16


Instalación <strong>de</strong> la aplicación (y 3)<br />

<br />

En caso <strong>de</strong> utilizar la autentificación <strong>de</strong> SQL Server hay que especificar el<br />

servidor don<strong>de</strong> se ubica el SGBD, la base <strong>de</strong> da<strong>to</strong>s a la que queremos<br />

conectarnos, el login y la password <strong>de</strong>l usuario<br />

Servidor<br />

Base <strong>de</strong><br />

da<strong>to</strong>s, login<br />

y password<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

17


Material complementario: formularios<br />

con PHP<br />

Esta aplicación sirve <strong>de</strong> mo<strong>de</strong>lo para crear otra aplicación web<br />

<strong>de</strong> estas características ya que ilustra cómo utilizar<br />

formularios, mostrar información y llevar a cabo el acceso y<br />

manipulación a información en una base <strong>de</strong> da<strong>to</strong>s<br />

Sin embargo, HTML y PHP permiten utilizar formularios<br />

adicionales a los que se han usado en esta aplicación, los<br />

formularios más comunes se repasan a continuación<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

18


Acceso a formularios con PHP<br />

Los formularios web permiten introducir información que será<br />

almacenada o buscada en la base <strong>de</strong> da<strong>to</strong>s<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

19


Acceso a formularios con PHP<br />

¿Cómo implementar formularios con PHP<br />

<br />

<br />

Dentro <strong>de</strong> la etiqueta form <strong>de</strong> html que permite <strong>de</strong>finir formularios hay que<br />

especificar dos atribu<strong>to</strong>s:<br />

<br />

<br />

Action: Especifica el nombre <strong>de</strong>l script php que gestionará la información <strong>de</strong>l<br />

formulario<br />

Method: Toma valor post para evitar que la información que se suministra<br />

mediante el formulario aparezca como parte <strong>de</strong> la URL<br />

Usamos el botón submit que permite al usuario notificar al servidor que ha<br />

finalizado <strong>de</strong> introducir la información en el formulario<br />

Archivo cliente.php<br />

<br />

<br />

<br />

Nombre: <br />

<br />

<br />

<br />

<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

20


Acceso a formularios con PHP<br />

¿Cómo implementar formularios<br />

Dentro <strong>de</strong>l script implementado acce<strong>de</strong>mos y gestionamos la<br />

información introducida por el usuario<br />

En este ejemplo se visualiza en el navegador el valor introducido<br />

por el usuario<br />

Archivo servidor.php<br />

<br />

<br />

<br />

<br />

<br />

$POST: Colección<br />

<strong>de</strong> elemen<strong>to</strong>s<br />

enviados <strong>de</strong>s<strong>de</strong><br />

mé<strong>to</strong>do post<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

21


Formularios tipo TEXT<br />

Los formularios <strong>de</strong> tipo text permiten al cliente introducir<br />

ca<strong>de</strong>nas <strong>de</strong> tex<strong>to</strong><br />

……<br />

Introduzca su apellido:<br />

…..<br />

….<br />

<br />

<br />

…<br />

echo "su apellido es: ";<br />

echo $_POST["apellido"];<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

22


Formularios tipo RADIO<br />

Los formularios <strong>de</strong> tipo radio permiten al cliente seleccionar<br />

una opción <strong>de</strong> entre varias<br />


Formularios tipo CHECKBOX<br />

Los formularios <strong>de</strong> tipo checkbox permiten al cliente seleccionar<br />

distintas opciones<br />

<br />

climatizador<br />

CD<br />

<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

24


Formularios tipo PASSWORD<br />

El formulario password tiene un funcionamien<strong>to</strong> análogo al<br />

formulario text<br />

En este caso la información que introduce el usuario no se<br />

muestra en el navegador por motivos <strong>de</strong> seguridad<br />

Introduzca la password <strong>de</strong> acceso al sistema:<br />


Formularios tipo SELECT SIMPLE<br />

Este tipo <strong>de</strong> formularios sólo muestran un elemen<strong>to</strong> al usuario<br />

que usa una lista <strong>de</strong>splegable para ver el res<strong>to</strong><br />

Opel<br />

Renault<br />

<br />

<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

26


Formularios y PHP: SELECT MULTIPLE<br />

Este tipo <strong>de</strong> formularios muestran un listado con varios<br />

elemen<strong>to</strong>s<br />

<br />

renault<br />

seat<br />

<br />


Formularios tipo TEXTAREA<br />

El formulario textarea tiene un funcionamien<strong>to</strong> análogo al<br />

formulario text, pero con capacidad para varias líneas<br />

<br />

Escriba aquí sus sugerencias<br />

<br />

<br />

© 2011 Marta Zorrilla y Rafael Duque- <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong><br />

28

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!