Foros del Web » Programando para Internet » PHP »

Comparacion de varias horas en un mismo form

Estas en el tema de Comparacion de varias horas en un mismo form en el foro de PHP en Foros del Web. Buenos dias amigos, reciban un cordial saludo, por aqui estoy de nuevo, ya que me encuentro ahora con un detalle, resulta que el sistema que ...
  #1 (permalink)  
Antiguo 04/10/2011, 09:29
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 19 años, 4 meses
Puntos: 1
Comparacion de varias horas en un mismo form

Buenos dias amigos, reciban un cordial saludo, por aqui estoy de nuevo, ya que me encuentro ahora con un detalle, resulta que el sistema que estoy desarrollando se encarga de procesar todos los datos que son captados por observadores cientificos que se montan en los barcos para monitorear las labores de pesca, entre estos datos hay una planilla llamada "Registro de Lance de Palangre", que capta toda la informacion referente a la lanzada y la recogida del arte de pesca palangre; esta planilla tiene muchas variables, entre las que se encuentran 4 de suma importancia, como la son las horas de lance y las horas de recogida del palangre, las estructuramos de la siguiente manera:

Fecha y Hora de inicio del Lance
Fecha y Hora del fin del Lance
Fecha y Hora del Inicio de la recogida
Fecha y Hora del fin de la recogida

Estas son las horas en las que se inician y se finalizan las labores de pesca del barco, y el observador cientifico debe tomar estos datos junto con otras variables, para poder monitorear las zonas de pesca de dichas embarcaciones, hasta ahi todo bien.

Ahora, viene la explicacion del detalle que tengo:

Estos datos cuando llegan a tierra, deben ser entregados a la oficina del programa para su procesamiento en el software que yo estoy desarrollando, y tambien necesitan ser validados, de manera que no haya inconsistencias en las fechas y horas; lo que quiero hacer es la comparacion entre estas fechas para que lleven la secuencia de registro, por ejemplo, este es uno de los lances que se registraron en el viaje y son datos reales:

fecha de inicio del lance: 09-10-04 hora del lance 10:22
fecha de fin del lance 09-10-04 hora del lance 13:37
fecha de inicio de la recogida 09-10-04 hora de la recogida 18:55
fecha fin de la recogida 09-10-05 hora de la recogida 00:45


Esta seria la secuencia correcta de ingreso de datos, el problema que tengo es que hice las comparaciones de cada variable, pero cuando voy a comparar la 3ra y 4ta variable, el mensaje de error me aparece muchas veces, quisiera que me orientaran o me ayudaran a organizar mejor la estructura que estoy usando para resolver el problema, aqui les dejo le codigo que estoy usando:

Código PHP:
<?php
require_once('config.php');
$mens="Los datos fueron registrados con exito";
$error '<a href="javascript: window.history.back()"><< Regresar a solucionar el problema</a>';
$fil $_POST["fechail"];//fecha inicio del lance aa/mm/dd
$hil $_POST["horail"];//hora inicio del lance hh/mm
$ffl $_POST["fechafl"];//fecha fin lance aa/mm//dd
$hfl $_POST["horafl"];//hora fin de lance hh/mm
$fir $_POST["fechair"];//fecha inicio recogida aa/mm/dd
$hir $_POST["horair"];//ora inicio recogida hh/mm
$ffr $_POST["fechafr"];//fecha fin recogida aa/mm/dd
$hfr $_POST["horafr"];//hora fin recogida hh/mm
$fhil $_POST["fechail"]." ".$_POST["horail"].":00";//fecha y hora del inicio del lance aa/mm/dd hh/mm
$fhfl $_POST["fechafl"]." ".$_POST["horafl"].":00";//fecha y hora del fin del lance aa/mm/dd hh/mm
$fhir $_POST["fechair"]." ".$_POST["horair"].":00";//fecha y hora del inicio de la recogida aa/mm/dd hh/mm
$fhfr $_POST["fechafr"]." ".$_POST["horafr"].":00";//fecha y hora del fin de la recogida aa/mm/dd hh/mm
$afhil strtotime($fhil);//fecha y hora del inicio del lance
$afhfl strtotime($fhfl);//fecha y hora del fin del lance
$afhir strtotime($fhir);//fecha y hora del inicio de la recogida
$afhfr strtotime($fhfr);//fecha y hora del fin de la recogida
if (($afhil $afhfl) || ($afhil $afhir) || ($afhil $afhfr)){
    echo 
'Error en fecha u hora.' $error '';
    if ((
$afhfl $afhil) || ($afhfl $afhir) || ($afhfl $afhfr)){
        echo 
'Error en fecha u hora.' $error '';
        if ((
$afhir $afhil) || ($afhir $afhfl) || ($afhir $afhfr)){
            echo 
'Error en fecha u hora.' $error '';
            if ((
$afhfr $afhil) || ($afhfr $afhfl) || ($afhfr $afhir)){    
                echo 
'Error en fecha u hora.' $error '';
            } else {
                
$sql mysql_query("INSERT INTO fhlances (fhil,fhfl,fhir,fhfr) VALUES ('$fhil','$fhfl','$fhir','$fhfr')"); //consultas
            
}
        }
    }
}        
?>
  #2 (permalink)  
Antiguo 04/10/2011, 09:40
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 17 años, 4 meses
Puntos: 194
Respuesta: Comparacion de varias horas en un mismo form

A simple vista esos if anidados estan mal, sin analizar las condiciones internas, para hacer el insert que tienes a lo ultimo primero necesariamente te imprimio 3 errores por pantalla.

la estructura deberia ser algo asi.

Código PHP:
if(){
    
error1;
} else{
    if(){
        
error2;
    } else{
        if(){
            
error3;
        } else{
            if(){
                
error4;
            } else{
                
Insert;
            }
        }
    }

__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #3 (permalink)  
Antiguo 04/10/2011, 10:14
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: Comparacion de varias horas en un mismo form

Que tal amigo, corregi la anidacion de los if, y funciono, gracias por la ayuda, una pregunta, tambien podria utilizar la sentencia switch?
  #4 (permalink)  
Antiguo 04/10/2011, 10:21
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 17 años, 4 meses
Puntos: 194
Respuesta: Comparacion de varias horas en un mismo form

lamentablemente no, con el switch no puedes realizar esas condiciones

http://php.net/manual/es/control-structures.switch.php
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 04/10/2011, 11:04
Avatar de Bullet  
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: Comparacion de varias horas en un mismo form

Ok amigo, muchas gracias por la informacion, ahora lo que me falta es comparar los datos del registro anterior con los que estoy ingresando, tengo una forma de hacerlo, la voy a probar, cualquier duda que tenga vuelvo y la posteo... Saludos

Etiquetas: comparacion, horas, mysql, registro, sql, variables, formulario
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 03:30.