Foros del Web » Programando para Internet » PHP »

Buscar entre fechas

Estas en el tema de Buscar entre fechas en el foro de PHP en Foros del Web. hola a todos: Mi problema es un poco complejo. Estoy tratando de hacer una especie de agenda de fiestas. Cada fiesta empieza en una fecha ...
  #1 (permalink)  
Antiguo 07/06/2005, 12:49
 
Fecha de Ingreso: enero-2005
Mensajes: 63
Antigüedad: 12 años, 11 meses
Puntos: 1
Buscar entre fechas

hola a todos:

Mi problema es un poco complejo. Estoy tratando de hacer una especie de agenda de fiestas. Cada fiesta empieza en una fecha y acaba en otra, con lo cual tengo una tabla con dos campos tipo date, fecha_inicio y fecha_final.
He hecho un buscador y mis visitantes pueden buscar entre dos fechas y les saco un listado con las fiestas disponibles entre esas dos fechas, para ello uso la fecha_inicio, o sea que en realidad busco las fiestas que empiezan entre dos fechas dadas. Hasta ahí perfecto.
El problema viene cuando a través de un calendario muy mono que he creado el visitante selecciona un día para ver si hay algún tipo fiesta ese día. Pero si la fiesta no empieza en ese mismo día no sale nada. Lo que yo quiero es que dado ese día concreto me saque todos los registros (fiestas) que empiecen en ese día, o acaben en ese día (hasta aquí no hay problema), pero también si ese día concreto está comprendido entre fecha_inicio y fecha_final.
Espero que puedan ayudarme porque no se qué hacer.
  #2 (permalink)  
Antiguo 07/06/2005, 14:28
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 15 años, 4 meses
Puntos: 15
Si entiendo el problema es que el usuario solicita la fecha:
2005-06-22 <-- ese es el formato date de mysql año-mes-dia

El manda esa fecha y tu script solo muestra en vez de 22 que es el dia muestra del 23 en adelante?? eso es lo que quieres decir??

Si es asi puedes usar la funcion date_add() de mysql. y tu consulta a la base de datos solo para buscar un dia especificio puede ser:
"Select * from tabla where date_add($fecha,interval -1 day) = fecha_inicio or date_add($fecha,interval -1 day) = fecha_final"

Esa consulta resta un dia a la fecha dada, otra cosa puede ser que hagas un "WHERE fecha_inicio = $fecha" que es mas preciso.

Puedes leer mas de esta funcion en
http://dev.mysql.com/doc/mysql/en/da...functions.html
  #3 (permalink)  
Antiguo 08/06/2005, 02:16
 
Fecha de Ingreso: enero-2005
Mensajes: 63
Antigüedad: 12 años, 11 meses
Puntos: 1
No es eso

gracias por tu respuesta pero no es ese mi problema. Para buscar un día concreto ya tengo la aplicacion hecha.
Mi problema es que el usuario quiere saber si en un día concreto transcurre una fiesta, y la fiesta empieza un dia concreto y termina otro dia concreto, pero entre medias hay una serie de días que puede ser el que esté buscando el usuario, pero no se cómo encontrar esos días y compararlos con el que el usuario ha insertado.
¿Como comparo una fecha dada con el intervalo entre dos fechas...?
gracias por adelantado
  #4 (permalink)  
Antiguo 08/06/2005, 04:21
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... tu pregunta "¿Como comparo una fecha dada con el intervalo entre dos fechas...?" en concreto puedes buscarla en el foro... hayarás respuestas: http://www.forosdelweb.com/f18/validar-fecha-entre-dos-fechas-diferentes-286143/

... ahora... lo que quieres hacer lo planteo de la siguiente manera:
- Consultar EL registro donde la fecha buscada sea menor ó igual a la fecha de inicio...
Código:
SELECT campos FROM tabla WHERE fecha_inicio<=fecha_buscada LIMIT 0,1
- Ejecutar un script como el del enlace...
- Y ya!!! ...

.. más claro?:
Código PHP:
<?php
// conectamos y demás
$fecha$_POST['fecha_buscada']; // supongo viene de un formulario
$consultamysql_query("SELECT campos FROM tabla WHERE fecha_inicio<='$fecha' LIMIT 0, 1");

$row=mysql_fetch_assoc($consulta);

if(
strtotime($fecha)>=strtotime($row['fecha_inicio']) && strtotime($fecha)<=strtotime$row['fecha_fin']))
        echo 
"Hay Fiesta!!!<br>Del ".$row['fecha_inicio']." al ".$row['fecha_fin'];
else echo 
":-( Nada.... aburrida la vida....";
?>
Ojo que esto compararía fechas con todo y año... no sé qué tipo de fiestas quieras validar.....

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 08/06/2005, 05:44
 
Fecha de Ingreso: enero-2005
Mensajes: 63
Antigüedad: 12 años, 11 meses
Puntos: 1
Mil Gracias!!!!!!!

Muchas gracias por tu ayuda Jam, estaba más perdida...
No había pensado en que las fechas se pueden comparar como si fueran números, en realidad creía que no se podía. Tu código es perfecto para hacer lo que busco. De nuevo mil gracias....Espero poder devolverte el favor algún día aunque no me queda nada para estar a tu nivel....aunque seguiré intentándolo!!!!! Un saludo...
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 22:31.