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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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!