Foros del Web » Programando para Internet » PHP »

Como obtener resultados entre dos fechas y las sucesivas?

Estas en el tema de Como obtener resultados entre dos fechas y las sucesivas? en el foro de PHP en Foros del Web. Hola, Explicación del funcionamiento Tengo una aplicación en PHP para calendarios, cuya funcionalidad está basada en que cada vez que cambias de mes, envía una ...
  #1 (permalink)  
Antiguo 24/10/2015, 15:31
 
Fecha de Ingreso: abril-2011
Mensajes: 85
Antigüedad: 12 años, 11 meses
Puntos: 5
Como obtener resultados entre dos fechas y las sucesivas?

Hola,

Explicación del funcionamiento

Tengo una aplicación en PHP para calendarios, cuya funcionalidad está basada en que cada vez que cambias de mes, envía una petición ajax al servidor, con la fecha de inicio del mes, y la fecha final del mes.

Por ejemplo, para el mes de octubre, el calendario envía al servidor las dos fechas del mes en cuestión (con un margen de tiempo de unos 5 o 6 días entre ambos). Ejemplo para octubre: from: 2015-09-29 to: 2015-11-04. Eso sería un ejemplo.

Entonces, a partir de aquí, yo obtengo todas las fechas, y el servidor se encarga de retornar los valores entre esas dos fechas

Utilizo la siguiente declaración para mostrar los eventos:

Código PHP:
Ver original
  1. // Esto es lo que obtengo por ajax
  2. $post_date_start = $_POST['date_start']; // inicio del mes (normalmente unos días antes de márgen) ie: 2015-09-29
  3. $post_date_ending = $_POST['date_ending']; // finalización del mes (con unos días de márgen adicionales también) ie: 2015-11-04
  4.  
  5. // Ahora obtengo los eventos comprendidos entre esos días:
  6. SELECT * FROM calendar WHERE start_date >= '$post_date_start' AND ending_date <= '$post_date_ending'

Esto funciona bien en realidad. Funciona bien, para eventos que están entre esas fechas, y los muestra correctos.

El problema

Si quiero mostrar un evento, cuya fecha de inicio NO ES dentro del mes de octubre, o cuya fecha de finalización no es dentro de los meses, no lo muestra? ¿Por qué? Porque esto lo que hace es coger entre esas dos fechas.

Ejemplo (funciona):

Si tengo un evento que empieza el 3 de octubre y termina el 2 de noviembre lo leerá bien. ¿por qué? porque las fechas de inicio y de finalización coinciden

Ejemplo (no funciona):

Dicho de otro modo, si yo en mi aplicación, estoy en el mes de octubre, y tengo un evento en dónde la fecha de inicio es el 7 de agosto, y termina el 10 de diciembre de 2015, no saldrá, porque está comparando entre las dos fechas un evento

Otro ejemplo (no funciona):

Si mi evento empieza en octubre (el 3 de octubre por ejemplo) y finaliza el 9 de diciembre (o noviembre) no funcionará, porque no está dentro de esas fechas comprendidas. Lo mismo pasaría con un evento creado en septiembre y que acabe en octubre, porque no está dentro de este rango entre 2 fechas.

Espero que me haya explicado con suficiente claridad, he probado numerosas formas, pero no consigo dar con el clavo, y estoy seguro que es una tontería de verdad.

Muchas gracias!!
  #2 (permalink)  
Antiguo 24/10/2015, 16:14
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 6 meses
Puntos: 214
Respuesta: Como obtener resultados entre dos fechas y las sucesivas?

Saludo
Pues todo esta funcionando de acuerdo a las validaciones que tienes.

El asunto es que quieres 'saltarte' esas validaciones.

Lo podrías hacer cambiando el AND por un OR.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 26/10/2015, 03:02
 
Fecha de Ingreso: abril-2011
Mensajes: 85
Antigüedad: 12 años, 11 meses
Puntos: 5
Respuesta: Como obtener resultados entre dos fechas y las sucesivas?

Cita:
Iniciado por mortiprogramador Ver Mensaje
Saludo
Pues todo esta funcionando de acuerdo a las validaciones que tienes.

El asunto es que quieres 'saltarte' esas validaciones.

Lo podrías hacer cambiando el AND por un OR.
Hola,

Esto no solucionaría mi problema... porque captaría todos los eventos. Si hubiera pocos eventos, no supondría un gran problema, pero al haber muchos la cosa se complicaría, porque los cargaría todos.

He probado cambiando el AND por el OR, pero lo muestra todos, y no puede ser así... llevo muchas horas con esta tonteria de problema, pero no encuentro una solución... alguna otra alternativa? Gracias!
  #4 (permalink)  
Antiguo 26/10/2015, 03:36
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 6 meses
Puntos: 214
Respuesta: Como obtener resultados entre dos fechas y las sucesivas?

Saludo
Pues sí, hay algunas otras alternativas.

1. Aumentar el rango de fechas
2. Hacer 'grupos' de ANDS con fechas. Ej: De agosto a septiembre, de octubre a noviembre (actual) y de noviembre a diciembre
3. Agregar un campo a los eventos que los haga visibles
así sus fechas ya no concuerden con las que maneje la página.
Esta segunda opción sería fácil de implementar,
tanto a nivel de tabla, como de consulta, pues
dejarías el AND tal como está, y agregarías otro AND
preguntando por el nuevo campo (con determinado valor que las haga visibles)

Esto obviamente implica pensar en el manejo de este campo
ya sea por tu parte, o por parte de quien administre los eventos,
pero sería cuestión de hacer una interfaz para ello,
a ver que tal te suena esa idea.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: fecha, resultados, 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 02:37.