Foros del Web » Programando para Internet » PHP »

Problema con buscador de fecha y hora

Estas en el tema de Problema con buscador de fecha y hora en el foro de PHP en Foros del Web. Buenos dias compañeros. Tengo un problema con un buscador de fecha y hora, he buscado en el foro alguna solucion pero no he logrado encontrarla, ...
  #1 (permalink)  
Antiguo 03/09/2011, 12:21
 
Fecha de Ingreso: mayo-2011
Ubicación: Mexico
Mensajes: 16
Antigüedad: 13 años
Puntos: 1
Problema con buscador de fecha y hora

Buenos dias compañeros.

Tengo un problema con un buscador de fecha y hora, he buscado en el foro alguna solucion pero no he logrado encontrarla, les explico mi situacion.

Estoy haciendo una solucion basada en PHP y MySQL para una compañia de transporte de personal, en dicho programa se agendan los viajes con datos como chofer, camion, ruta, empresa a la que se dara servicio, fecha del viaje y hora; para poder agendar un nuevo viaje, reviso primero que tanto el chofer como el camion no esten programados en otro viaje agendado anteriormente a la misma fecha y hora ni 2 horas antes ni despues (que es lo que normalmente tarda cada uno de los viajes realizados). Hasta aqui todo ok, peeeeero, mi problema viene cuando el viaje se programa para despues de las 22 :00 (10 de la noche) o antes de las 02:00 am, ya que la busqueda involucraria buscar en el dia despues del q se programa originalmente o en el dia anterior, pongo un par de ejemplos.

Si el viaje se programa a las 23:00 (11 de la noche) del 10/sept/2011, mi busqueda debera contemplar, para cumplir con las 2 horas, buscar hasta las 01:00 del 11/sept/2011.

Si el viaje se programa a las 01:00 del 10/sept/2011, la busqueda se tendra que realizar desde las 23:00 del dia 09/sept/2011

El problema se pone peor cuando llegase a ser fin de mes, o de año :s ya que cambia mes y/o hasta año.

Adjunto la parte del programa que tengo.

Código PHP:
$hora_antes=$hora_viaje2-2;
$hora_desp=$hora_viaje2+2;
$hora_antes_con$hora_antes.":".$minuto_viaje2;
$hora_desp_con=$hora_desp.":".$minuto_viaje2;
#Vamos a buscar registros en la BD donde ya sea el chofer y/o el camion no esten usados en esa fecha a esa hora

$verif_datos_viaje mysqli_query($link"SELECT * FROM Viajes WHERE (chofer='$chofer_viaje2' AND fecha='$fecha_viaje2' AND hora BETWEEN '$hora_antes_con' AND '$hora_desp_con') OR (camion='$camion_viaje2' AND fecha='$fecha_viaje2' AND hora BETWEEN '$hora_antes_con' AND '$hora_desp_con')");

$cont_aux=0;

    while (
$dato_repetidomysqli_fetch_array($verif_datos_viaje,MYSQLI_BOTH))
        {   if (
$count_aux == 0)
            {
               echo 
"<p align='center'>Al momento de querer guardar la informacion, se encontro este registro donde uno o varios datos parecen  empalmarse con el viaje que se desea programar, favor de revisar la informacion y volver a intentarlo</p>";
               echo 
"<table align='center' width='90%' cellspacing ='5' cellpadding='1'   border='4' bordercolor='2B29C6' bgcolor='FCE303'  rules='all'>";
               include (
"titulos_de_las_filas_resp_BD.inc"); #Contiene los titulos de las columnas en format completo a como esta en la BD
               
$count_aux=1;
            }
                echo 
"<tr>";
                for (
$cuenta=0;$cuenta<11;$cuenta++) #Recorremos todos los campos, ya que son 11, vamos desplegandolos todos de uno en uno
                    
{
                        echo 
"<td>";
                        echo 
$dato_repetido[$cuenta];
                        echo 
"</td>";
                    }
                echo 
"</tr>";
        }
        echo 
"</table>"
Les comento que esta parte del programa SI FUNCIONA cuando los horarios son normales, pero cuando son los casos que explique anteriormente, deja de funcionar correctamente.

Alguna sugerencia???

De antemano gracias por su aporte.
Saludos!!!!!!!!!

Etiquetas: fecha, mysql, registro, sql, buscadores
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 10:38.