25
2013
Prácticas de PHP – MySql
Ejercicio práctico de PHP – MySql
En esta práctica queremos implementar una pequeña aplicación en PHP5 que, tomando las tres primeras letras de la entrada estándar, devuelva por la salida estándar todas las coincidencias de hospedajes existentes en una determinada base de datos, ordenados por nombre, incluyendo sus características y su ubicación.
Tenemos dos tipos de hospedajes, Hoteles y Apartamentos, cada uno con sus características específicas. En el caso de los hoteles, además de su nombre, necesitamos conocer el número de estrellas y el tipo de habitación estándar que tienen (dejamos a tu elección proponer unos cuantos tipos de habitación como doble, doble con vistas, …). En el caso de los apartamentos y además de su nombre, necesitamos conocer para cada propiedad cuantos apartamentos tienen disponibles y para cuantos adultos tienen capacidad, teniendo en cuenta que sólo tienen un tipo de apartamentos.
Para la ubicación de cualquier hospedaje nos basta con indicar la ciudad y provincia.
La salida (a mostrar por salida estándar) debería ser un listado del siguiente tipo:
.Hotel Azul, 3 estrellas, habitación doble con vistas, Valencia, Valencia
.Apartamentos Beach, 10 apartamentos, 4 adultos, Almeria, Almeria
.Hotel Blanco, 4 estrellas, habitación doble, Mojacar, Almeria
.Hotel Rojo, 3 estrellas, habitación sencilla, Sanlucar, Cádiz
.Apartamentos Sol y playa, 50 apartamentos, 6 adultos, Málaga, Málaga
Esta práctica la realice como test de conocimientos PHP-MySql, seguramente encontréis mil formas de solucionarlo, con clases, utilizando la arquitectura modelo-vista-controlador, etc. En mi caso no me compliqué demasiado y aún así me llevo más de 2 o 3 horas.
La solución contiene el código PHP así como la creación de las tablas MySql que eran necesarias:
La solución
Fichero conexion.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php // creamos la función que utilizaremos para conectarnos en la bd. // Si cambia la bd solo tendremos que cambiarlo en un sitio. // El archivo se llamara conexion.php que luego llamaremos desde el script que hará // la consulta en la bd. function Conectarse() { if (!($conectado=mysql_connect("host.com","user","password1"))) { echo "Error de conexion a la base de datos."; exit(); } if (!mysql_select_db("basededatos",$conectado)) { echo "Error al seleccionar la base de datos."; exit(); } return $conectado; } ?> |
Fichero consulta.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
<?php include("conexion.php"); // Llamamos al fichero que tiene la función que nos permite conectarnos a la bd. // Realizamos la conexión $conectado=Conectarse(); // Recogemos el parámetro $consultaCiudad= $_REQUEST["consultaCiudad"]; if($conectado){ $sqlCiudad= "select * from ( select hos.nombre, h.estrellas || 'estrellas', h.tiphab, u.ciudad, u.provincia from hotel h, hospedaje hos, ubicacion u where hos.idUbi = u.id and hos.id = h.idHos and (u.ciudad like '%$consultaCiudad%' or u.provincia like '%$consultaCiudad%') union select hos.nombre, a.disponibles || ' apartamentos', a.capacidad || ' adultos', u.ciudad, u.provincia from apartamento a, hospedaje hos, ubicacion u where hos.idUbi = u.id and hos.id = a.idHos and (u.ciudad like '%$consultaCiudad%' or u.provincia like '%$consultaCiudad%') ) t order by nombre"; $resSqlCiudad = mysql_query($sqlCiudad) or mysql_error(); if (!$resSqlCiudad) { echo "Fallo la consulta: ".$resSqlCiudad; mysql_close($conectado); return 0; } else { echo "<ul>"; // creamos la lista while ($result_rowCiudad = mysql_fetch_row(($resSqlCiudad))) { echo "<li> ".$result_rowCiudad["0"].", ".$result_rowCiudad["1"].",".$result_rowCiudad["2"].",".$result_rowCiudad["3"].",".$result_rowCiudad["4"]." "; // mostramos cada resultado de la lista. } echo "</ul>"; // cerramos la lista } } else { die("Fallo en la conexión al servidor."); } ?> |
Fichero de creación de tablas MySql
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
--Tabla ubicacion(id, ciudad, provincia) CREATE TABLE ubicacion (id INT PRIMARY KEY, ciudad VARCHAR(30), provincia VARCHAR(30)); --Tabla hospedaje(id, nombre, idUbi) --idUbi FK ubicacion.id CREATE TABLE hospedaje (id INT PRIMARY KEY, nombre VARCHAR(30), idUbi INT, FOREIGN KEY (idUbi) REFERENCES ubicacion (id)); --Tabla hotel(idHos, estrellas, tiphab) --idHos FK hospedaje.id CREATE TABLE hotel (idHos INT, estrellas INT, tiphab VARCHAR(50), FOREIGN KEY (idHos) REFERENCES hospedaje (id)); --Tabla apartamento(idHos, disponibles, capacidad) --idHos FK hospedaje.id CREATE TABLE apartamento (idHos INT, disponibles INT, capacidad INT, FOREIGN KEY (idHos) REFERENCES hospedaje (id)); SELECT * FROM ( SELECT hos.nombre, h.estrellas || 'estrellas', h.tiphab, u.ciudad, u.provincia FROM hotel h, hospedaje hos, ubicacion u WHERE hos.idUbi = u.id AND hos.id = h.idHos AND (u.ciudad LIKE '%$consultaCiudad%' OR u.provincia LIKE '%$consultaCiudad%') UNION SELECT hos.nombre, a.disponibles || ' apartamentos', a.capacidad || ' adultos', u.ciudad, u.provincia FROM apartamento a, hospedaje hos, ubicacion u WHERE hos.idUbi = u.id AND hos.id = a.idHos AND (u.ciudad LIKE '%$consultaCiudad%' OR u.provincia LIKE '%$consultaCiudad%') ) t ORDER BY nombre |
Ningún usuario a búscado algo parecido en nuestra website
Related Posts
1 Comment + Add Comment
Leave a comment
Encuéntralo aquí
Ayudas!
Entradas recientes
- Autopublicar en el muro de facebook de tus amigos
- Comprimir web desde cpanel
- Imagen en categorías Opencart
- Automatizar keywords Opencart
- Instalar Opencart
- PopUpTo Share | Opencart
- PopUp to Share | Opencart
- Páginas 404 personalizadas
- Xampp como servidor publico
- Redireccionar web www htaccess | www.dominio.com
- Sustituir una cadena por otra | script bat bacht ms-dos
- Ajustar TextView Android
- Reset password Opencart
- Conocer la ruta completa del servidor web
- Modificar el número de productos que muestra por página
- Problema Captcha Opencart
- Themes Opencart gratuitos
- Resolver el problema de Facebook “href URL must be absolute”
- Frameworks para el Desarrollo de páginas web IV
- Frameworks para el Desarrollo de páginas web III
Recientes
- Ber: Pongo los que voy utilizando, si te animas y tienes alguno, enviamelo y lo publicamos. Un saludo,
- luis enrique: estimado tienes batcheros para validar reglas de tipo numéricos, fecha y letras, asi como retirar...
- Ber: Hola, No se muy bien a que te refieres, si me das más detalles. Saludos
- Myri: hola me puedes ayudar me sale una cxudricula en el emulador pero en el telefono me sale q la plicacion no se...
- Ber: Hola, No lo tengo en java no,
. Si lo haces envíamelo please y lo subo si quieres. Un saludo,
Categorías
- Android (5)
- Bases de datos (75)
- Data Mining (2)
- MySql (3)
- Oracle (62)
- SGBD (4)
- Cajon desastre (4)
- Consolas (5)
- Desarrollo web (84)
- Blogger (1)
- Google Maps (3)
- Opencart (9)
- SEO (10)
- Wordpress (21)
- Ensamblador (13)
- Codigo (7)
- Facebook (API) (13)
- Adsense (1)
- Aplicación Test (1)
- Conectar con Facebook (3)
- Facebook en Español (2)
- Publicar Facebook (4)
- Flash (1)
- Flex (1)
- Forms (2)
- Hardware (18)
- Arquitectura (3)
- Iphone (5)
- Java (24)
- Android (1)
- JavaScript (17)
- ms-dos (1)
- Php (15)
- Proyectos Programación (10)
- Redes (22)
- Software (21)
- Ubuntu (6)
- Vb.net (4)
- Windows (1)
- XML (6)
Hola, amigos, ojala pueda ayudarme en esto: Tengo un cliente que tiene contrato con un servidor web que no soporta bases de datos Mysql, por lo tanto no puedo instalar aplicaciones que requieren bases de datos,específicamente Oscommerce. Mi servidor si soporta Mysql, cree una base de datos en mi servidor y subi los archivos de oscommerce al servidor de mi cliente, al tratrar de usar la información de la base de datos en el proceso de instalacion, no me lo permite, que hago para usar la base de datos de mi proveedor en el hosting de mi cliente.