Venta de Inmuebles - Parte 1, Base de Datos
←
→
Transcripción del contenido de la página
Si su navegador no muestra la página correctamente, lea el contenido de la página a continuación
Ing. Tomás Urbina Programación Web y Desarrollo Plataforma Web Venta de Inmuebles - Parte 1, Base de Datos EL 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 debería tener mas controles y un análisis mas profundo de su base de datos. Veamos paso a paso, el razonamiento para crear una Aplicación 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 Datos Existen básicamente 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 página 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 dinámico. Un sitio dinámico 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 automáticamente 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 definición, una Base de Datos es un Conjunto de Información, lo son las fichas de papel que tenían en algunas oficinas (antiguas o actuales quedadas en el tiempo) y lo son las que por medio de la informática podemos almacenar en nuestras computadoras. En este caso ese conjunto de información, 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 elección para estos casos. Ese conjunto de información debe tener lo que se llama Estructura. La estructura es la forma en que se organiza la información, para saber la estructura debemos ver que datos deseamos almacenar, a esto se le llama Análisis de Bases de Datos, que en aplicaciones de gran tamaño lleva su tiempo, y se requiere de ciertos conocimientos y
Ing. Tomás Urbina Programación Web y Desarrollo Plataforma Web practica para desarrollar la misma ya que es lo que puede facilitar o complicar la aplicación 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, Baños, Habitaciones, Precio, Ubicación o Población, o Ciudad, etc., además del Precio de Venta, o Renta, entre otros datos que podrán agregar en cada caso si lo desean. De los datos mencionados tenemos que pensar como llenaríamos los mismos, por ejemplo si es una caja de texto, una lista desplegable, etc. Los metros cuadrados, los baños, 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 ubicación, 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 estarán 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. Tomás Urbina Programación Web y Desarrollo Plataforma Web Que es una tabla ¿? La base de datos como dijimos, es el conjunto de toda la información de nuestra Web de Venta de Inmuebles, esa base, esta dividida en Tablas, cada tabla representa un grupo de información, hasta ahora tenemos pensadas dos Tablas: Propiedades, que almacena la lista de propiedades, se podrán agregar, modificar y eliminar a gusto. Ciudades, que almacena la lista de ciudades, también se podrán 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, baños, 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 también será un registro. Esquemáticamente la cosa quedaría así, ya con sus nombres, los cuales es mejor no tengan espacios ni símbolos: Base de datos: Inmobiliaria Tablas: Propiedades o Id o Titulo o MtsCuadrados o Baños o Habitaciones o idCiudad o PrecioVenta o PrecioRenta o TipoInmueble o Descripción
Ing. Tomás Urbina Programación Web y Desarrollo Plataforma Web o FechaIngreso Ciudades o Id o Nombre Como vemos, he agregado en cada tabla un campo Id, este campo será un número que identifique cada elemento de manera única, esto se realiza así para facilitar mas adelante la programación del sitio y la busqueda de información. 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 phpMyAdmin En la parte anterior, discutimos los elementos necesarios para llevar a cabo esta aplicación Web de Venta de Inmuebles, ahora vamos a ver prácticamente como Crear la Base de Datos y las Tablas mencionadas. En nuestro navegador Internet Explorer, o mejor aun FireFox, vamos a cargar la siguiente dirección: http://localhost o http://localhost/phpmyadmin (si hemos reconfigurado la pagina de inicio de nuestro servidor Web para que cargue automáticamente) sino http://localhost/phpmyadmin/index.php. Lo cual nos mostrara la pagina de bienvenida de phpMyAdmin de MySQL después 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. Tomás Urbina Programación 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 permitiráAdministrar 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 contraseña del MySQL, esto lo configuramos al momento de instalar MySQL con appserv, wamp, xampp, etc. Luego de ingresar el usuario y contraseña correspondiente veremos una página similar a la siguiente imagen. Esta es (o algo parecido) la página principal del phpMyAdmin.
Ing. Tomás Urbina Programación Web y Desarrollo Plataforma Web Si miran arriba a la izquierda varemos un icono con una casita que nos permitirá regresar a esta página 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 Inmobiliaria En este caso no tenemos aun ninguna Base de Datos creada para nuestra Inmobiliaria, por eso vamos a ir al centro de la página 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 práctica. 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. Tomás Urbina Programación 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 número 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 información permiten indicarle que Tipo de Datos contendrá cada Campo, a esto se le llama Tipo del Campo, y dependerá si es un valor numérico sin decimales, un valor numérico 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 mayúsculas ya que el PHP lo diferenciara y puede dar problemas. En mi caso no uso nunca mayúsculas, escribo todo en minúsculas.
Ing. Tomás Urbina Programación Web y Desarrollo Plataforma Web Luego de ingresado todos los campos le damos Grabar, esto Creara la Tabla “propiedades” con los campos correspondiente. Como ven, para el id, utilice el tipo INT, que indica un valor numérico sin decimales, esto me permitirá identificar cada Propiedad. En los campos titulo, mtscuadrados, banos, habitaciones, utilice VARCHAR con un largo de 255, esto permitirá números, letras o símbolos hasta un ancho máximo 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 máximo pero no lo ocupa todo. Si adentro guardamos solo un titulo “casa en la playa”, gastara solo 16 bytes o caracteres. Vean también que no escribí “baños” si no “banos” para no utilizar símbolos, ni tampoco use espacios. Otra cosa es que si bien habitaciones contendrá un número, no utilice INT, si no VARCHAR, yo uso como regla que si el número no se usa para búsquedas directas u operaciones matemáticas le asignare de tipo VARCHAR.
Ing. Tomás Urbina Programación Web y Desarrollo Plataforma Web En precioventa y preciorenta utilice DOUBLE, que permite guardar números con decimales. En tipoinmueble, use numérico 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 código numérico que lo identifica. En descripcion, utilice TEXT ya que es un texto amplio que puede ser de 10 o 100 o 500, o más por tanto excede el máximo 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 Propiedades Como 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 búsquedas cuando hay muchos Registros, o sea muchas Propiedades en la Tabla. Si prestamos atención abajo dice, No se ha definido el índice!, bien, hagámoslo. Para esto donde dice Crear un índice en 1columna(s), damos en el botón Continuar.
Ing. Tomás Urbina Programación Web y Desarrollo Plataforma Web Y en la siguiente página, 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. Tomás Urbina Programación Web y Desarrollo Plataforma Web Veremos entonces, que id, queda subrayado (I) indicando que es un Índice, también abajo en la Lista de Índices (II) esta el PRIMARY por Campo id. Ese número de propiedad, podríamos ingresarlo a mano, 1, 2, 3, etc. o también podemos hacer que sea un número Automático que se AutoIncremente. Para esto, vamos a dar click en el Icono Cambiar (el lápiz de la marca III en la imagen).
Ing. Tomás Urbina Programación Web y Desarrollo Plataforma Web Y en la siguiente página, como indica en la imagen, seleccionamos como parámetro Extra, el auto_increment. Para que ese número aumente solo, de manera automática. Por ultimo le damos click, al botón Grabar. Y de esta forma tenemos lista nuestra primer Tabla, llamada propiedades, en nuestra Base de Datos llamada inmobiliaria. Crear la Tabla de Ciudades Ahora 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 imágen (I). Luego escribimos el Nombre de la Tabla a Crear, en este caso “ciudades” (imágen II), y la cantidad de campos (imágen III), por ejemplo 10, y damos Continuar.
Ing. Tomás Urbina Programación Web y Desarrollo Plataforma Web Esta 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 se ha definido índice!, para crear el índice por id, damos Continuar. Indicamos que el índice será por id, de tipo PRIMARY y damos Grabar. Seleccionamos cambiar (en el lapicito bajo Acción), para indicar nuevamente que id, será un campo que AutoIncrementa, tal como hicimos en la tabla propiedades. Y con esto tendríamos listas las 2 tablas necesarias para nuestra aplicación Web de Venta de Inmuebles o Inmobiliarias.
Ing. Tomás Urbina Programación Web y Desarrollo Plataforma Web Venta de Inmuebles - Parte 3, phpMyAdmin Ingreso y Edición de Datos Ahora veremos la forma en que podemos Ingresar, Modificar y Eliminar Registros en las Tablas, utilizando el mismo phpMyAdmin, como Gestor de Base de Datos. Más adelante podrán realizar su propio sistema de ingreso, modificación y eliminación de Ciudades y Propiedades (usando código 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 dirección: http://localhost Vamos a seleccionar phpMyAdmin Database Manager, para ir a Gestor de Base de Datos, donde veremos nuevamente esta imágen:
Ing. Tomás Urbina Programación 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. Tomás Urbina Programación Web y Desarrollo Plataforma Web Ahí podemos ver nuestras dos tablas, ciudades y propiedades, que son las que componen nuestra Base de Datos Inmobiliaria. Insertar Registros en una Tabla Insertar 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. También podemos ver que nuestra Tabla, tiene cero filas o registros (II). Pero a nosotros nos interesa la opción de Insertar Registros, que la realizamos presionando en el link Insertar (III) en la parte superior. Esta opción 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, bastaría con ingresar una sola ciudad. Pero en este caso escribí “Madrid” y “Montevideo” así llenamos 2 de 1 vez.
Ing. Tomás Urbina Programación 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 Automático 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 página de Ingreso para seguir agregando más registros. De esta forma podemos ingresar tantas ciudades como queremos. Ver la Lista de Registros o Ver la Estructura de la Tabla En 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. Tomás Urbina Programación Web y Desarrollo Plataforma Web Examinar, mostrara la lista de registros ingresados, en nuestro caso, serán las ciudades, como muestra la imagen: Editando y Eliminando Registros En la imagen anterior vemos como se muestran las ciudades ingresadas, cada una con el nombre que le dimos, y verán también que fueron numeradas automáticamente en el id, ya que como recordamos este es AutoNumerico. Veamos también que en cada Registro, hay dos iconos, un lápiz y una cruz (I). El lápiz, permite Modificar o Editar ese Registro, por ejemplo para cambiar a mayúsculas de la primera letra de cada ciudad ;) que a propósito la deje en minúsculas 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. Tomás Urbina Programación Web y Desarrollo Plataforma Web En algunos casos, puede ser necesario Editar o Eliminar, más de un Registro, para esto tenemos los Cuadros de Selección (II), donde podrán 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 Propiedades Como 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. Tomás Urbina Programación Web y Desarrollo Plataforma Web En Insertar, aparecerá la Ficha de Edición, donde Ingresaremos la Información, como por ejemplo la de la imagen:
Ing. Tomás Urbina Programación Web y Desarrollo Plataforma Web Acá 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 ilógico pero en la próxima 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 año-mes-dia, cuatro dígitos del año, guión, 2 dígitos del mes, guión 2 dígitos del día, o damos click en el incono calendario y seleccionamos con otro click, la fecha correspondiente. Terminamos el ingreso con el botón Continuar, recordando que podemos volver a Ingresar otras propiedades cuando queramos, o Eliminar, Editar como explicamos en la sección 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 conexión de PHP con MySQL. Suerte y Bendiciones para tod@s.
También puede leer