PHP - Un pequeño problema con if y else

 
Vista:
sin imagen de perfil
Val: 16
Ha aumentado su posición en 8 puestos en PHP (en relación al último mes)
Gráfica de PHP

Un pequeño problema con if y else

Publicado por cesar (9 intervenciones) el 17/06/2017 03:11:24
Saludos...veran soy nuevo en php, y me ha surgido un pequeño problema al añadir else a un condicional if, lo que quiero es actualizar datos de una tabla en mysql, y el script me funciona bien cuando solo esta el if, pero al añadir el else, el programa ya no me quiere funcionar...es decir la tabla no se actualiza. Disculpen mi ignorancia pero no logro ver que esta mal. Por favor alguien que me pueda ayudar con esto.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
 
    $time2 = microtime_float();
    $id=$_GET['id'];
    $detector2 = $_GET['detector'];
	$conexion = mysql_connect("localhost", "root", "");
    mysql_select_db("proyectoumss",$conexion);
 
    $query = mysql_query("SELECT `t_inicio`,`t_detector1` FROM `datodetectores` WHERE `ID`='$id'", $conexion);
	$datosD1 = mysql_fetch_assoc($query);
    $t_total = $time2 - $datosD1['t_inicio'];
    $detector1 = $datosD1['t_detector1'];
    $vel_med = 2/$t_total;
    $valMax = max($detector2,$detector1);
    $longVeh=($valMax/1000)*$vel_med;
 
    if ($longVeh<=4.2) {
        $tipoVeh = 1;
    }/*else{
        if (4.2<$longVeh<6) {
            $tipoVeh = 1.5;
        }
        else{
            $tipoVeh = 2;     
        }
    }*/
    mysql_query("UPDATE `datodetectores` SET `t_final`='$time2',`t_detector2`='$detector2',`t_desp`='$t_total',`vel_media`='$vel_med',`tipoVehiculo`='$tipoVeh' WHERE `ID`='$id'", $conexion);
    mysql_close($conexion);
 
    function microtime_float(){
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
    }
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Un pequeño problema con if y else

Publicado por kip (877 intervenciones) el 17/06/2017 04:40:40
Hola, intentalo de esta forma:

1
2
3
4
5
6
7
if ($longVeh <= 4.2) {
    $tipoVeh = 1;
} else if (4.2 < $longVeh && $longVeh < 6) {
    $tipoVeh = 1.5;
} else {
    $tipoVeh = 2;
}

Te recomiendo no evaluar si son iguales los valores de tipo float como lo haces, es incorrecto ya que podrias tener resultados inesperados, lo digo por esta evaluación $longVeh <= 4.2

En la documentación de PHP te dan una solución mucho mas óptima y ademas tambien tienes una funcion dedicada para ello:

http://php.net/manual/es/language.types.float.php#language.types.float.comparison
http://php.net/manual/es/function.bccomp.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 8 puestos en PHP (en relación al último mes)
Gráfica de PHP

Un pequeño problema con if y else

Publicado por cesar (9 intervenciones) el 17/06/2017 05:14:40
ok gracias por la ayuda...lo probare
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar