Foros del Web » Programando para Internet » PHP »

Disponibilidad web hotel

Estas en el tema de Disponibilidad web hotel en el foro de PHP en Foros del Web. Hola, estoy queriendo enseñar en la web todas las habitaciones disponibles que tengo entre dos fechas cuando la cantidad (disponibilidad) sea mayor a zero. Si ...
  #1 (permalink)  
Antiguo 15/03/2016, 03:33
 
Fecha de Ingreso: marzo-2016
Mensajes: 2
Antigüedad: 8 años, 9 meses
Puntos: 0
Disponibilidad web hotel

Hola,
estoy queriendo enseñar en la web todas las habitaciones disponibles que tengo entre dos fechas cuando la cantidad (disponibilidad) sea mayor a zero.
Si yo hago eso:
$query="Select id_habitacio from cantidad where id_hotel='1' and data between '".$inicio."' and '".$fin."' and cantidad>='".$numeroHabitaciones."'";

Me devuelve tres registros, uno de una habitación que la cantidad es mayor que $numeroHabitaciones en el primer dia y otra habitación que me sale repetida dos veces porque hay cantidad mayor que $numeroHabitaciones en el dia fin y en el dia inicio (entre inicio y fin en la primera prueba que he hecho solo hay un dia de diferencia, osea dos noches)
Yo solo quiero mostrar las habitaciones que la cantidad es mayor que $numeroHabitaciones pero en las dos noches, pero claro me muestra la primera habitación y la segunda porque la primera tiene mayor que $numeroHabitaciones en el primer dia.
$numeroHabitaciones= es el número de habitaciones que el usuario ha seleccionado. Por ejemplo 1 habitación
No sé cómo controlar esto.

Muchas gracias,

Gemma
  #2 (permalink)  
Antiguo 15/03/2016, 07:08
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 2 meses
Puntos: 175
Respuesta: Disponibilidad web hotel

Uhm, te lias mucho para explicar y me cuesta entender... pero el problema no vendrá porque le colocas >= MAYOR O IGUAL?

Haces diferencia de Fecha y Hora para determinar el filtro?
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #3 (permalink)  
Antiguo 15/03/2016, 10:51
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: Disponibilidad web hotel

todo depende de como tengas los registros en tu tabla, pues deberias de crearte una funcion que te haga una resta sobre el total de habitaciones que tiene el hotel menos la cantidad reservada en el dia seleccionado y alli te deberia de dar el total disponible y basado en eso realizas la comparación de las disponibles con las seleccionadas por el cliente, algo asi:

Código PHP:
Ver original
  1. //reservas por fecha (las traeras de tu base de datos)
  2. $fechas = array('2016-03-16'=>3,'2016-03-17'=>5,'2016-03-18'=>15,'2016-03-19'=>15,);
  3.  
  4. //cantidad de habitaciones que dispone el hotel
  5. $cantidadHabit = 20;
  6.  
  7. //habitaciones solicitadas por el cliente
  8. $solicitadas = 7;
  9.  
  10. //recorremos las fechas del rango seleccionado (en teste caso un array)
  11. foreach($fechas as $clave=>$valor){
  12.    
  13.     //restamos del total de habitaciones las reservadas en cada fechga
  14.     $resta = ($cantidadHabit - $valor);
  15.    
  16.     //mostramos solo las fechas que tienen habitaciones disponibles basado en la cantidad que solicita el cliente
  17.     if($resta > $solicitadas){
  18.         echo "Disponible ".$resta." habitaciones el ".$clave."<br>";
  19.     }
  20.  
  21.  
  22. }

eso imprime:

Disponible 17 habitaciones el 2016-03-16
Disponible 15 habitaciones el 2016-03-17


solo tendrías que actualizar el codigo para adaptarlo a tur tablas y consultas, pero como dije, todo va a depender de como la tengas estructurada.
__________________
[email protected]
HITCEL

Última edición por xfxstudios; 15/03/2016 a las 11:07

Etiquetas: disponibilidad, fecha, hotel, registro, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:20.