ejemplo bd con php my admin 022011

Upload: barahona16

Post on 20-Jul-2015

117 views

Category:

Documents


0 download

TRANSCRIPT

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma Web

Venta de Inmuebles - Parte 1, Base de DatosEL objetivo de esta guia es que se familiaricen con el uso de phpMyAdmin, crear BD, crear y administrar Tablas, etc. Para ello tomaremos como ejemplo una base de datos de Venta de Inmuebles. Repito este es un ejemplo simple para familiarizarce con MySQL como base de datos, por tal motivo en un caso real este debera tener mas controles y un anlisis mas profundo de su base de datos. Veamos paso a paso, el razonamiento para crear una Aplicacin Web (la Base de Datos por el momento) de manejo de Venta de Inmuebles o Inmobiliarias, realizado de forma practica y utilizando MySQL.

Estructura de la Base de DatosExisten bsicamente dos formas de hacer una Web de Inmobiliaria, una es crear los HTML, del sitio y una pagina por cada propiedad, siendo estos fijos, y obligando a crear manualmente una pgina por cada propiedad. Esto no es recomendable para un negocio real donde compran, venden, se agregan y rentan propiedades a diario o semanalmente y por tanto mi sugerencia es hacerlo dinmico. Un sitio dinmico seria tener una Base de Datos con todas las propiedades, y que en esa base de datos se agreguen, o marquen como vendidas o rentadas las que ya no deben aparecer en la Web, para esto usaremos una base MySQL. Esa base de datos MySQL la leeremos en Internet con una pagina PHP (no HTML) que automticamente lee cada propiedad y la muestra repitiendo esa pagina para cada propiedad sin tener que hacerla manualmente uno por vez, esta es la gran ventaja de realizar sitios de esta forma (esto en otra practica futura). Por definicin, una Base de Datos es un Conjunto de Informacin, lo son las fichas de papel que tenan en algunas oficinas (antiguas o actuales quedadas en el tiempo) y lo son las que por medio de la informtica podemos almacenar en nuestras computadoras. En este caso ese conjunto de informacin, lo tendremos almacenado en nuestra base de datos en el Servidor, la cual ser almacenada y gestionada por el Motor de Base de Datos MySQL, que es por otra parte el que mejor se lleva con PHP y le mejor eleccin para estos casos. Ese conjunto de informacin debe tener lo que se llama Estructura. La estructura es la forma en que se organiza la informacin, para saber la estructura debemos ver que datos deseamos almacenar, a esto se le llama Anlisis de Bases de Datos, que en aplicaciones de gran tamao lleva su tiempo, y se requiere de ciertos conocimientos y

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma Webpractica para desarrollar la misma ya que es lo que puede facilitar o complicar la aplicacin en el futuro, o que esta sea mas o menos posible de ampliar para nuevos fines. Como dijimos, esta asignatura es para ilustrar el funcionamiento de PHP y MySQL, no para crear analistas o ingenieros de software, por tanto lo haremos de manera sencilla.

Que datos vamos a manejar en la Web ?Obviamente vamos a manejar una lista de Propiedades, estas propiedades van a tener datos como Metros Cuadrados, Baos, Habitaciones, Precio, Ubicacin o Poblacin, o Ciudad, etc., adems del Precio de Venta, o Renta, entre otros datos que podrn agregar en cada caso si lo desean. De los datos mencionados tenemos que pensar como llenaramos los mismos, por ejemplo si es una caja de texto, una lista desplegable, etc. Los metros cuadrados, los baos, las habitaciones, pueden ser cajas de texto simples. El precio, depende del tipo de propiedad, o sea si es una propiedad en venta tendr un precio de venta, pero si es para renta mensual tendr otro precio. En este punto es bueno entonces que tengamos 3, datos:

Precio de Venta Precio de Renta Y otro que indique el Tipo de Propiedad, que puede ser:

Venta Renta Ambos

Ya que puede ser para venta y/o renta. La ubicacin, puede ser una lista desplegable de ciudades formada por las ciudades de la zona donde esta nuestra inmobiliaria, en este caso es mejor prevenir que se ingresen los mismos datos de diferente forma, por ejemplo que un operario ingrese como Santa Lucia, otro como Ciudad de Santa Lucia y otro como St Lucia, es por eso que mi sugerencia es usar una lista de ciudades que estarn previamente almacenadas en la Base de Datos y se mostraran en una lista desplegable al ingresar cada propiedad. Esta lista de ciudades puede ser ampliable o modificarse en futuro, por tanto as como las propiedades ocupara otra Tabla, de la base de datos.

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma Web

Que es una tabla ?La base de datos como dijimos, es el conjunto de toda la informacin de nuestra Web de Venta de Inmuebles, esa base, esta dividida en Tablas, cada tabla representa un grupo de informacin, hasta ahora tenemos pensadas dos Tablas: Propiedades, que almacena la lista de propiedades, se podrn agregar, modificar y eliminar a gusto. Ciudades, que almacena la lista de ciudades, tambin se podrn agregar, modificar y eliminar a gusto.

Que son los campos ?Como dijimos, la Base de Datos esta formada por Tablas que agrupan los datos, y a su vez cada Tabla, estar formada por Campos. Los Campos, son cada uno de los datos que identifica un elemento de la Tabla. Por ejemplo hemos mencionado ya los campos, metros cuadrados, baos, habitaciones, precio, etc.

Que son los registros ?Los Registros son los elementos almacenados en cada Tabla, por ejemplo cada propiedad ocupara un registro y cada ciudad tambin ser un registro. Esquemticamente la cosa quedara as, ya con sus nombres, los cuales es mejor no tengan espacios ni smbolos: Base de datos: Inmobiliaria Tablas: o o o o o o o o o o

Propiedades Id Titulo MtsCuadrados Baos Habitaciones idCiudad PrecioVenta PrecioRenta TipoInmueble Descripcin

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma Webo o o

FechaIngreso Ciudades Id Nombre

Como vemos, he agregado en cada tabla un campo Id, este campo ser un nmero que identifique cada elemento de manera nica, esto se realiza as para facilitar mas adelante la programacin del sitio y la busqueda de informacin. En el caso de la tabla Propiedades, vemos un campo idCiudad, que no ser otra cosa que el numero de ciudad en la lista, esto es para ahorrarnos de guardar nuevamente el nombre, basta solo con guardar el numero de referencia de la otra Tabla Ciudades.

Venta de Inmuebles - Parte 2, Base de Datos y phpMyAdminEn la parte anterior, discutimos los elementos necesarios para llevar a cabo esta aplicacin Web de Venta de Inmuebles, ahora vamos a ver prcticamente como Crear la Base de Datos y las Tablas mencionadas. En nuestro navegador Internet Explorer, o mejor aun FireFox, vamos a cargar la siguiente direccin: http://localhost o http://localhost/phpmyadmin (si hemos reconfigurado la pagina de inicio de nuestro servidor Web para que cargue automticamente) sino http://localhost/phpmyadmin/index.php. Lo cual nos mostrara la pagina de bienvenida de phpMyAdmin de MySQL despus de pedirnos el usuario y la clave para accesar a ella, si usted instalo MySQL pues debe recordar que clave le puso (pruebe con root y sin clave), si es la maquina virtual proporcionada en esta materia intente escribiendo root en el usuario y a en la clave, si esto no funciona lo mejor seria desinstalar MySQL y volverlo a instalar teniendo el cuidado de recordar que clave escribimos. Igual pueden revisar el archivo leame.txt que esta en el escritorio de la maquina virtual y ah encontraran las claves de los productos que vamos a utilizar en la materia. La imagen siguiente es la pantalla de bienvenida de phpMyAdmin.

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma Web

Vamos a dar click en el primer link que dice phpMyAdmin Database Manager, ya que este, como su nombre lo indica nos permitirAdministrar las Bases de Datos MySQL de nuestro PC o Servidor si estamos trabajando on line. En este punto nos pedir el nombre de usuario y contrasea del MySQL, esto lo configuramos al momento de instalar MySQL con appserv. Luego de ingresar el usuario y contrasea correspondiente veremos una pgina similar a la siguiente imagen. Esta es (o algo parecido) la pgina principal del phpMyAdmin.

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma Web

Si miran arriba a la izquierda varemos un icono con una casita que nos permitir regresar a esta pgina inicial del phpMyAdmin. Debajo dice Base de Datos, ah veremos la lista de Bases de Datos que hay en nuestro PC en el MySQL (o en el hosting), con esta lista podemos seleccionar cualquiera de ellas para trabajar.

Crear la Base de Datos InmobiliariaEn este caso no tenemos aun ninguna Base de Datos creada para nuestra Inmobiliaria, por eso vamos a ir al centro de la pgina y donde dice: Crear nueva Base de Datos, escribiremos inmobiliaria y daremos Crear. De esta forma logramos tener la Base de Datos Inmobiliaria que mencionamos en la primera parte de esta prctica. Esta aparecer en la parte izquierda, como indica la siguiente imagen y en la parte central nos sugiere ya Crear las Tablas que contendr esta Base de Datos (recordemos que eran Propiedades y Ciudades).

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma Web

Crear la Tabla Propiedades

Sin mas demora, en donde dice Crear nueva Tabla en la Base de Datos inmobiliaria, escribiremos de nombre propiedades y en nmero de campos 20 (no importa que luego sobren, es mejor poner de mas), y le damos Continuar. Nos aparecer una serie de 20 cajas de texto para ingresar el Nombre de cada Campo, el Tipo del Campo y la longitud del campo. Las Bases de Datos, para clasificar la informacin permiten indicarle que Tipo de Datos contendr cada Campo, a esto se le llama Tipo del Campo, y depender si es un valor numrico sin decimales, un valor numrico con decimales, un valor de texto corto, un valor de mucho texto, o una fecha, veremos en cada caso el apropiado. Debemos Ingresar los Campos como indica la siguiente imagen, con sus Nombres y Tipos, es importante tener en cuenta si usamos o no maysculas ya que el PHP lo diferenciara y puede dar problemas. En mi caso no uso nunca maysculas, escribo todo en minsculas.

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma Web

Luego de ingresado todos los campos le damos Grabar, Tabla propiedades con los campos correspondiente.

esto Creara

la

Como ven, para el id, utilice el tipo INT, que indica un valor numrico sin decimales, esto me permitir identificar cada Propiedad. En los campos titulo, mtscuadrados, banos, habitaciones, utilice VARCHAR con un largo de 255, esto permitir nmeros, letras o smbolos hasta un ancho mximo de 255, es un poco mucho pero el Control del Largo lo haremos en las Cajas de Texto al ingresar cada propiedad, ya que el VARCHAR, a pesar de tener largo 255 prev ese mximo pero no lo ocupa todo. Si adentro guardamos solo un titulo casa en la playa, gastara solo 16 bytes o caracteres. Vean tambin que no escrib baos si no banos para no utilizar smbolos, ni tampoco use espacios. Otra cosa es que si bien habitaciones contendr un nmero, no utilice INT, si no VARCHAR, yo uso como regla que si el nmero no se usa para bsquedas directas u operaciones matemticas le asignare de tipo VARCHAR.

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma WebEn precioventa y preciorenta utilice DOUBLE, decimales. que permite guardar nmeros con

En tipoinmueble, use numrico INT para guardar en l, un 1 para casas en Venta, 2 para casas en Renta y un 3 si es ambos casos, o sea cada tipo de inmueble tendr ese cdigo numrico que lo identifica. En descripcion, utilice TEXT ya que es un texto amplio que puede ser de 10 o 100 o 500, o ms por tanto excede el mximo de un VARCHAR que son 255, y se aplica mejor un campo TEXT, que es virtualmente ilimitado. Por ultimo en fechaingreso, donde se guardara la fecha en que esa propiedad se ingresa al sistema, utilice el tipo DATE, que permite guardar una fecha.

Crear el ndice para la Tabla PropiedadesComo dijimos, el id, ser el Campo que Identifica la Propiedad, a estos campos usados para identificar registros (registro = cada una de las propiedades), se le llama ndice. Un ndice, permite acelerar las bsquedas cuando hay muchos Registros, o sea muchas Propiedades en la Tabla. Si prestamos atencin abajo dice, No se ha definido el ndice!, bien, hagmoslo. Para esto donde dice Crear un ndice en 1columna(s), damos en el botn Continuar.

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma Web

Y en la siguiente pgina, seleccionamos como campo, id, y verificamos que diga como Tipo de ndice: PRIMARY ya que este ser la forma principal de buscar, y por ultimo damos click en Grabar.

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma Web

Veremos entonces, que id, queda subrayado (I) indicando que es un ndice, tambin abajo en la Lista de ndices (II) esta el PRIMARY por Campo id. Ese nmero de propiedad, podramos ingresarlo a mano, 1, 2, 3, etc. o tambin podemos hacer que sea un nmero Automtico que se AutoIncremente. Para esto, vamos a dar click en el Icono Cambiar (el lpiz de la marca III en la imagen).

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma WebY en la siguiente pgina, como indica en la imagen, seleccionamos como parmetro Extra, el auto_increment. Para que ese nmero aumente solo, de manera automtica.

Por ultimo le damos click, al botn Grabar. Y de esta forma tenemos lista nuestra primer Tabla, llamada propiedades, en nuestra Base de Datos llamada inmobiliaria.

Crear la Tabla de CiudadesAhora de la misma forma, crearemos la tabla ciudades, de paso repasamos un poco lo que realizamos con propiedades. Damos un click en la Base de Datos inmobiliaria, que vemos a la izquierda en la imgen (I).

Luego escribimos el Nombre de la Tabla a Crear, en este caso ciudades (imgen II), y la cantidad de campos (imgen III), por ejemplo 10, y damos Continuar.

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma WebEsta tabla, como vemos en la imagen, tendr solo 2 campos, que son id, de tipo INT y el nombre de la ciudad de tipo VARCHAR, de 255 de largo. Presionamos luego, Grabar.

Nos mostrara, que No damos Continuar.

se

ha

definido

ndice!,

para

crear

el

ndice

por id,

Indicamos que el ndice ser por id, de tipo PRIMARY y damos Grabar. Seleccionamos cambiar (en el lapicito bajo Accin), para indicar nuevamente que id, ser un campo que AutoIncrementa, tal como hicimos en la tabla propiedades. Y con esto tendramos listas las 2 tablas necesarias para nuestra aplicacin Web de Venta de Inmuebles o Inmobiliarias.

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma Web

Venta de Inmuebles - Parte 3, phpMyAdmin Ingreso y Edicin de DatosAhora veremos la forma en que podemos Ingresar, Modificar y Eliminar Registros en las Tablas, utilizando el mismo phpMyAdmin, como Gestor de Base de Datos. Ms adelante podrn realizar su propio sistema de ingreso, modificacin y eliminacin de Ciudades y Propiedades (usando cdigo PHP), pero es importante conocer esta herramienta ya que es de mucha ayuda para Webmasters y Desarrolladores Web. En nuestro navegador Internet Explorer, o mejor aun FireFox, vamos a cargar la siguiente direccin: http://localhost

Vamos a seleccionar phpMyAdmin Database Manager, para ir a Gestor de Base de Datos, donde veremos nuevamente esta imgen:

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma Web

En la parte izquierda, donde dice Base de Datos, vamos a seleccionar la que se llama inmobiliaria, y ah veremos una pantalla similar a esta:

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma WebAh podemos ver nuestras dos tablas, ciudades y propiedades, que son las que componen nuestra Base de Datos Inmobiliaria.

Insertar Registros en una TablaInsertar Registros, significa agregar datos a la Tabla, en este caso lo haremos en ciudades. Para esto a la izquierda vamos a dar click, en ciudades

En la parte derecha veremos la siguiente imagen, con la Estructura de nuestra Tabla ciudades, la cual recordemos que tiene dos campos (I) id y nombre. Tambin podemos ver que nuestra Tabla, tiene cero filas o registros (II). Pero a nosotros nos interesa la opcin de Insertar Registros, que la realizamos presionando en el link Insertar (III) en la parte superior.

Esta opcin nos permite, agregar Registros en nuestra Tabla Actual, que es ciudades, ah veremos la siguiente imagen, donde podremos escribir 1 o 2 registros. No es necesario llenar los 2, bastara con ingresar una sola ciudad. Pero en este caso escrib Madrid y Montevideo as llenamos 2 de 1 vez.

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma Web

Vean que no ingrese el numero de id, ya que como recordamos, al crear la tabla, este fue definido como un AutoNumerico, o sea que Incrementa Automtico cada vez que ingresamos algo. Bien, luego de ingresado vamos a presionar Continuar (I). Al presionar Continuar (I), volveremos a la lista de datos de la Tabla, o quedara listo para Insertar mas datos, esto depende del cuadro desplegable que dice Volver (I). Si damos click en la lista desplegable de Volver veremos las opciones que indica la imagen:

Las dos opciones, son: Volver, que regresa a la lista de registros e Insertar un nuevo registro, que vuelve a esta pgina de Ingreso para seguir agregando ms registros. De esta forma podemos ingresar tantas ciudades como queremos.

Ver la Lista de Registros o Ver la Estructura de la TablaEn la parte superior, veremos dos opciones que son Examinar o Estructura, como indica la imagen:

Estructura, muestra como vimos hace unos momentos, los campos de la Tabla, los ndices y el Numero de Filas ingresadas.

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma WebExaminar, mostrara la lista de registros ingresados, en nuestro caso, sern las ciudades, como muestra la imagen:

Editando y Eliminando RegistrosEn la imagen anterior vemos como se muestran las ciudades ingresadas, cada una con el nombre que le dimos, y vern tambin que fueron numeradas automticamente en el id, ya que como recordamos este es AutoNumerico. Veamos tambin que en cada Registro, hay dos iconos, un lpiz y una cruz (I). El lpiz, permite Modificar o Editar ese Registro, por ejemplo para cambiar a maysculas de la primera letra de cada ciudad ;) que a propsito la deje en minsculas para que ahora ustedes prueben Editar una por una. La cruz (I) permite Eliminar la ciudad que quieran, basta con dar un click en el icono X y luego Confirmar.

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma WebEn algunos casos, puede ser necesario Editar o Eliminar, ms de un Registro, para esto tenemos los Cuadros de Seleccin (II), donde podrn elegir cuales Registros vamos a Eliminar o Editar. Luego de seleccionados los 1, 3, 20 o 10 registros con un simple click, para Editar o Eliminarlos, vamos a los iconos de la parte derecha (III), que nos permiten justamente, Editar o Eliminar los Registros Seleccionados. Si queremos Seleccionar todos los Registros damos click en Marcar todos/as. Si queremos Deseleccionar todos los Registros damos click en Desmarcar todos

Insertar Nuevas PropiedadesComo estamos en la Tabla ciudades, debemos cambiarnos, para esto vamos a dar click a la derecha en propiedades, donde indica la imagen.

Al dar click, veremos la Estructura de la Tabla propiedades, y tal como hicimos con ciudades, daremos click en Insertar.

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma Web

En Insertar, aparecer la Ficha de Edicin, donde Ingresaremos la Informacin, como por ejemplo la de la imagen:

Ing. Toms Urbina Programacin Web y Desarrollo Plataforma WebAc debemos tener en cuenta, que en idciudad, va el numero identificatorio de la ciudad, en mi caso he puesto el 2, por tanto corresponde a Montevideo. Esto puede sonar ilgico pero en la prxima parte cuando creemos nuestro propio formulario de ingreso veremos como enlaza. En tiponimueble veremos un 3 que significa que la casa esta tanto para venta como para renta (recuerden que 1 es venta, y 2 es renta). Esto lo convenimos as para facilitar el sistema. Por ultimo la fecha debe ser escrita en ese formato ao-mes-dia, cuatro dgitos del ao, guin, 2 dgitos del mes, guin 2 dgitos del da, o damos click en el incono calendario y seleccionamos con otro click, la fecha correspondiente. Terminamos el ingreso con el botn Continuar, recordando que podemos volver a Ingresar otras propiedades cuando queramos, o Eliminar, Editar como explicamos en la seccin de ciudades anteriormente. Ok, hasta este punto podemos ver terminado nuestra Base de Datos para una Venta de Inmuebles, seguramente ustedes pueden mejorarla si a mi se me ha escapado algun detalle. Por favor hagan esta practica y lleven esta BD en sus maquinas virtuales pues mas adelante cuando comencemos a trabajar con PHP la utilizaremos para hacer unos ejercicios de conexin de PHP con MySQL. Suerte y Bendiciones para tod@s.