Foros del Web » Programando para Internet » PHP »

Consulta con if

Estas en el tema de Consulta con if en el foro de PHP en Foros del Web. Buenos dias tengo este codigo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original if ( $lcrc < 6.4 && $lcrc > 0 ) {     echo ...
  #1 (permalink)  
Antiguo 17/02/2012, 10:32
Avatar de erick_reyesg  
Fecha de Ingreso: enero-2012
Ubicación: Guatemala
Mensajes: 53
Antigüedad: 12 años, 3 meses
Puntos: 2
Consulta con if

Buenos dias tengo este codigo

Código PHP:
Ver original
  1. if($lcrc < 6.4 && $lcrc > 0){
  2.     echo "<p style='color:#FF0000'>No cobras Lcr por ser Menor a 6.5</p>";
  3.        $lcrmsg = '---'; // 10%
  4.     }else if($lcrc == 6.5){
  5.        $lcrmsg = 20; // 10% etc... siguen comparaciones

y esta comparacion la estoy realizando con un input que es la variable $lcrc pero que pasa si la persona ingresa 6.52 me da error no calcula nada como resolverlos

gracias y saludos
__________________
No hay Mayor señal de Ignoracia que creer imposible lo Inexplicable
  #2 (permalink)  
Antiguo 17/02/2012, 10:35
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Consulta con if

que error le da??? yo creeria que con number format la podria cuadrar.. recomendable hacerselo tanto al a variable que lelga como al numero 6.4 para que queden con la misma cantidad de decimales...
  #3 (permalink)  
Antiguo 17/02/2012, 10:44
Avatar de erick_reyesg  
Fecha de Ingreso: enero-2012
Ubicación: Guatemala
Mensajes: 53
Antigüedad: 12 años, 3 meses
Puntos: 2
Respuesta: Consulta con if

te comento el error, el script procesa si el usuario ingresa 6.5 le indicara que cobrara 20 si ingresa 6.6 le indicara que cobrara 40 etc etc pero cuando el usuario ingresa 6.52 tendria que decirle que cobrara 20 pero no lo hace si no que lo deja en blanco
__________________
No hay Mayor señal de Ignoracia que creer imposible lo Inexplicable
  #4 (permalink)  
Antiguo 17/02/2012, 10:54
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Consulta con if

claro que no va a hacer nada porque usted esta comparando 6.5 con 6.52 "Que es lo que le llega" REVISE LA LINEA 4 DE SU CODIGO

Hice esta prueba para garantizar que todo este con un decimal y funciona... si necesita mas decimales pues lo ajusta asus necesidades.


Código PHP:
<?
    $lcrc
=6.52;
    
$lcrc=number_format($lcrc,1);
    if(
$lcrc number_format(6.4,1) && $lcrc 0){
        echo 
"<p style='color:#FF0000'>No cobras Lcr por ser Menor a 6.5</p>";
           
$lcrmsg '---'// 10%
    
}else if($lcrc == 6.5){
           
$lcrmsg 20;
    }
?>
  #5 (permalink)  
Antiguo 17/02/2012, 10:54
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 12 años, 11 meses
Puntos: 56
Respuesta: Consulta con if

Pues esta en blanco por que hay estas comaprando si es igual a 6.5 podrias probar con mayor y seguir comparando.

Código PHP:
Ver original
  1. <?php
  2. $lcrc=6.52;
  3. if($lcrc < 6.4 && $lcrc > 0){
  4.     echo "<p style='color:#FF0000'>No cobras Lcr por ser Menor a 6.5</p>";
  5.        $lcrmsg = '---'; // 10%
  6.     }else if($lcrc > 6.5){
  7.        $lcrmsg = 20; // 10% etc... siguen comparaciones
  8.        echo "<p style='color:#FF0000'>Mayor que 6.5</p>";
  9.        }
  10. ?>
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.
  #6 (permalink)  
Antiguo 17/02/2012, 10:57
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Consulta con if

la opcion de cesar tambien es valida pero tiene que poner si es mayor a tal numero y menor a tal otro o sino siempre le va a entrar al primer else if
  #7 (permalink)  
Antiguo 17/02/2012, 11:24
Avatar de erick_reyesg  
Fecha de Ingreso: enero-2012
Ubicación: Guatemala
Mensajes: 53
Antigüedad: 12 años, 3 meses
Puntos: 2
Respuesta: Consulta con if

gracias creo q es como lo dice helacer pues lo he puesto de esta forma y me funciono

Código PHP:
Ver original
  1. if($lcrc <= 6.4 && $lcrc > 0){
  2.     echo "<p style='color:#FF0000'><b>No cobras Lcr por ser Menor a 6.5</b></p>";
  3.        $lcrmsg = '---'; // 10%
  4.     }else if($lcrc >=6.5 && $lcrc <=6.59){
  5.        $lcrmsg = 20; // 10%
  6.     }else if($lcrc  >= 6.6 && $lcrc <=6.69){
  7.         $lcrmsg = 40; //20%
  8.     }else if($lcrc >= 6.7 && $lcrc <=6.79 ){
  9.        $lcrmsg = 60; //50%
  10.     }else if($lcrc >= 6.8 && $lcrc <=6.89 ){
  11.        $lcrmsg = 80; //50%
  12.     }else if($lcrc >= 6.9 && $lcrc <=6.99 ){
  13.        $lcrmsg = 100; //50%

Saludos
__________________
No hay Mayor señal de Ignoracia que creer imposible lo Inexplicable
  #8 (permalink)  
Antiguo 17/02/2012, 12:46
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Consulta con if

te dejo una función para que hagas tus comparaciones
Código PHP:
Ver original
  1. $dato =6.81;//dato a comparar
  2. //arreglo con las comparaciones
  3. //array(dato_inicial, $dato_final, $valor que retorna)
  4. $comparaciones=array(
  5.     array(0,6.4,'---'),
  6.     array(6.5,6.59,20),
  7.     array(6.6,6.69,40),
  8.     array(6.7,6.79,60),
  9.     array(6.8,6.89,80),
  10.     array(6.9,6.99,100)
  11. );
  12.  
  13. function between($dato, $arr, $ini=0){
  14.     if(count($arr) > $ini){
  15.         if($dato >= $arr[$ini][0] && $dato <= $arr[$ini][1]){
  16.             return $arr[$ini][2];
  17.         }else
  18.             return between($dato, $arr, ++$ini);
  19.     }else
  20.         return false;
  21. }
  22. if($total=between($dato,$comparaciones))
  23.     echo $total;
  24. else
  25.     echo $dato . ' => no exite en las comparaciones';
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Etiquetas: variables
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 12:21.