Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Sistemas de reservas, comparación de rango de fechas.

Estas en el tema de Sistemas de reservas, comparación de rango de fechas. en el foro de PHP en Foros del Web. Muy buenas, necesito ayuda en la lógica de una aplicación, estoy haciendo una web con reservas y necesito hacer una comparación para determinar si el ...
  #1 (permalink)  
Antiguo 03/05/2013, 05:16
lac
 
Fecha de Ingreso: octubre-2012
Ubicación: El Salvador
Mensajes: 27
Antigüedad: 12 años
Puntos: 0
Pregunta Sistemas de reservas, comparación de rango de fechas.

Muy buenas, necesito ayuda en la lógica de una aplicación, estoy haciendo una web con reservas y necesito hacer una comparación para determinar si el producto esta reservado en el rango de la fecha seleccionado, pero no encuentro la lógica para esto.
En la db puede haber más de un registro del mismo producto pero cada uno con distinto rango de fecha y el cliente puede hacer reservas que pueden estar antes o después de los registros ya existentes o incluso en medio de dos rangos de fechas ya existentes dentro de la db.
Pero como repito no encuentro la lógica…

Mil gracias.
  #2 (permalink)  
Antiguo 03/05/2013, 05:48
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Sistemas de reservas, comparación de rango de fechas.

FechiInicial=2009-12-15
FechaFinal=2010-01-02

Ni una ni la otra pueden estar dentro de un rango reservado

Código MySQL:
Ver original
  1.     FROM reservas
  2.     WHERE (('2009-12-15' BETWEEN start_date AND  end_date)
  3.                 OR ('2010-01-02' BETWEEN start_date AND  end_date))
  4.                 AND producto=X

Código MySQL:
Ver original
  1.     FROM reservas
  2.     WHERE  producto=X
  3.                  AND ((start_date<='2009-12-15' AND  end_date>='2009-12-15')
  4.                 OR (start_date<='2010-01-02' AND  end_date>='2010-01-02'))



Si esta query (son iguales) no da ningun resultado luego puedes hacer la reserva, si da alguno es que uno de los dias ya esta reservado y por tanto no se puede hacer la reserva.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 04/05/2013, 03:31
lac
 
Fecha de Ingreso: octubre-2012
Ubicación: El Salvador
Mensajes: 27
Antigüedad: 12 años
Puntos: 0
De acuerdo Respuesta: Sistemas de reservas, comparación de rango de fechas.

Cita:
Iniciado por quimfv Ver Mensaje
FechiInicial=2009-12-15
FechaFinal=2010-01-02

Ni una ni la otra pueden estar dentro de un rango reservado

Código MySQL:
Ver original
  1.     FROM reservas
  2.     WHERE (('2009-12-15' BETWEEN start_date AND  end_date)
  3.                 OR ('2010-01-02' BETWEEN start_date AND  end_date))
  4.                 AND producto=X

Código MySQL:
Ver original
  1.     FROM reservas
  2.     WHERE  producto=X
  3.                  AND ((start_date<='2009-12-15' AND  end_date>='2009-12-15')
  4.                 OR (start_date<='2010-01-02' AND  end_date>='2010-01-02'))



Si esta query (son iguales) no da ningun resultado luego puedes hacer la reserva, si da alguno es que uno de los dias ya esta reservado y por tanto no se puede hacer la reserva.
Muchas gracias, me funciona estupendo.

Etiquetas: ajax, rangos
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:33.