Foros del Web » Programando para Internet » PHP »

Índice de masa corporal en php

Estas en el tema de Índice de masa corporal en php en el foro de PHP en Foros del Web. Hola como jamás programé nada sóla en php empecé con esto que es super sencillo pero útil. el script calcula el índice de masa corporal. ...
  #1 (permalink)  
Antiguo 06/12/2007, 14:51
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 15 años, 6 meses
Puntos: 4
Índice de masa corporal en php

Hola como jamás programé nada sóla en php empecé con esto que es super sencillo pero útil.
el script calcula el índice de masa corporal.
completo está en .zip y sin registro ni nada en (repito es de una novata extrema)

http://www.mvlsistemas.com.ar/index.htm

formu

Código HTML:
<form name="form1" method="post" action="procesaindiceif.php">
      <table width="145" height="82">
        <tr>
          <td colspan="2" scope="col"><div align="center" class="Estilo2"><strong>&Iacute;ndice de Masa Corporal </strong></div></td>
        </tr>
        <tr>
          <td colspan="2" scope="col"><div align="justify"><span class="Estilo8">Ingrese los datos requeridos y oprima calcular. </span></div></td>
        </tr>
        <tr>
          <td width="53" scope="col">Peso</td>
          <td width="126" scope="col"><input name="peso" type="text" id="peso" size="8" maxlength="3">
            <span class="Estilo9">En k </span></td>
        </tr>
        <tr>
          <td>Altura</td>
          <td><input name="altura" type="text" id="altura" size="8" maxlength="4">
            <span class="Estilo9">        en m y decimal en cm. ej: 1.74 </span></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><input type="submit" name="Submit" value="Calcular"></td>
        </tr>
      </table>
    </form> 
procesaindiceif.php

Código PHP:
<?php

$altura 
$HTTP_POST_VARS ["altura"];
$peso $HTTP_POST_VARS ["peso"];
echo 
"SU PESO ES:";
echo 
$HTTP_POST_VARS ["peso"];
echo 
"Kg."."<br>";
echo 
"Su &iacute;ndice de Masa Corporal es: ";
$indice $peso / ($altura $altura); //operaci&oacute;n entre par&eacute;ntesis se ejecuta 1&ordm;
echo $indice;
echo 
"<br>";
if(
$indice<=17){
echo 
"su indice es: de infrapeso";
}
elseif((
$indice>17)and($indice<=18)){
echo 
"su indice es: de bajo peso";
}
elseif((
$indice>18)and($indice<=25)){
  echo 
"su indice es: de peso normal -saludable-"
  }
  elseif((
$indice>25)and($indice<=30)){
  echo 
"su indice es: de sobrepeso -obesidad de grado I-"
  }
   elseif((
$indice>30)and($indice<=35)){
  echo 
"su indice es de sobrepeso cr&oacute;nico -obesidad de grado II-"
  }
     elseif((
$indice>35)and($indice<=40)){
  echo 
"su indice es: de sobrepeso cr&oacute;nico -obesidad de grado III-"
  }
     elseif(
$indice>40){
  echo 
"su indice es: de obesidad m&oacute;rbida -obesidad de grado IV-"
  }
 else {
 echo 
"repita la operaci&oacute;n nuevamente cargando los valores correspondientes";
 }

?>
  #2 (permalink)  
Antiguo 06/12/2007, 18:35
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 15 años, 6 meses
Puntos: 4
Re: Índice de masa corporal en php

esto no puedo solucionar Warning: Division by zero in /home/mvladmin/domains/mvlsistemas.com.ar/public_html/procesaindiceif.php on line 41

al cargar dos valores en 0 o letras
  #3 (permalink)  
Antiguo 06/12/2007, 19:59
 
Fecha de Ingreso: junio-2006
Mensajes: 270
Antigüedad: 13 años, 5 meses
Puntos: 0
Re: Índice de masa corporal en php

Bufff, veo que no has tratado con la concatenacion.
Código PHP:
echo "SU PESO ES:";
echo 
$HTTP_POST_VARS ["peso"];
echo 
"Kg."."<br>"
Eso no, eso se hace:
Código PHP:
echo "SU PESO ES".$peso." KG" 
Y para salto de linea poens \n, es decir:
Código PHP:
echo "SU PESO ES".$peso." KG \n Y SU ALTURA ES ".$altura." metros \n"
Bien, a parte, es mejor que las sentencias no sea if else todo el rato. Pon todas if. Si lo que quieres al final es simplemente que si no es un numero salga un error, eso lo tienes que hacer al principio.
Ademas, debes comprobar que no te pasan como altura un 0. Dividir entre 0 no mola.
Comprueba los datos antes de nada.
Y en cuanto al error que te sale, normal si divides por 0 como he dicho antes. Lo que tienes que hacer es:
Código PHP:
if ( !(isset[$altura]) || ($altura 0) ||  !(is_numeric($altura)) )  {
die(
"Altura incorrecta");

Otra cosa: no muestres errores de php. Los ensayos hazlo en local. Pero lo que publiques, que no muestre errores.
  #4 (permalink)  
Antiguo 07/12/2007, 10:01
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 15 años, 6 meses
Puntos: 4
Re: Índice de masa corporal en php

Buenísima respuesta, si la concatenacion es imprescindible gracias por excelente ayuda que me diste la voy a aplicar a la brevedad.
  #5 (permalink)  
Antiguo 09/12/2007, 19:16
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 13 años
Puntos: 0
Re: Índice de masa corporal en php

Código PHP:
if ( !(isset[$altura]) || ($altura 0) ||  !(is_numeric($altura)) )  {
die(
"Altura incorrecta");

podrían agregarme un comentario sobre estas líneas? me pierdo en !(isser.. y para que es ll son separadores de concatenación? u operador?
  #6 (permalink)  
Antiguo 10/12/2007, 04:12
GPS
 
Fecha de Ingreso: diciembre-2003
Ubicación: Montevideo, Uruguay
Mensajes: 110
Antigüedad: 16 años
Puntos: 0
Re: Índice de masa corporal en php

Son operadores lógicos. ! = NOT, || = OR
Lo que dice dentro del if es, si no esta definida la variable altura o la altura es igual a cero o no es numérica la altura, entonces la altura es incorrecta
  #7 (permalink)  
Antiguo 27/12/2007, 08:28
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 13 años
Puntos: 0
Re: Índice de masa corporal en php

Hol CHICOS intente pero nada me da error el línea 38:
Código PHP:
?php

$altura 
$HTTP_POST_VARS ["altura"];
$peso $HTTP_POST_VARS ["peso"];
if ( !(isset[
$altura]) || ($altura 0) ||  !(is_numeric($altura)) )  {
die(
"Altura incorrecta");
}
echo 
"SU PESO ES".$peso." KG \n Y SU ALTURA ES ".$altura." metros \n";
echo 
"Su &iacute;ndice de Masa Corporal es: ";
$indice $peso / ($altura $altura); //operaci&oacute;n entre par&eacute;ntesis se ejecuta 1&ordm;
echo $indice;
echo 
"<br>";

if(
$indice<=17){
echo 
"su indice es: de infrapeso";
}
elseif((
$indice>17)and($indice<=18)){
echo 
"su indice es: de bajo peso";
}
elseif((
$indice>18)and($indice<=25)){
  echo 
"su indice es: de peso normal -saludable-"
  }
  elseif((
$indice>25)and($indice<=30)){
  echo 
"su indice es: de sobrepeso -obesidad de grado I-"
  }
   elseif((
$indice>30)and($indice<=35)){
  echo 
"su indice es de sobrepeso cr&oacute;nico -obesidad de grado II-"
  }
     elseif((
$indice>35)and($indice<=40)){
  echo 
"su indice es: de sobrepeso cr&oacute;nico -obesidad de grado III-"
  }
     elseif(
$indice>40){
  echo 
"su indice es: de obesidad m&oacute;rbida -obesidad de grado IV-"
  }
 else {
 echo 
"repita la operaci&oacute;n nuevamente cargando los valores correspondientes";
 }

?> 
  #8 (permalink)  
Antiguo 27/12/2007, 08:44
GPS
 
Fecha de Ingreso: diciembre-2003
Ubicación: Montevideo, Uruguay
Mensajes: 110
Antigüedad: 16 años
Puntos: 0
Re: Índice de masa corporal en php

Me parece que el único error es en la linea cuatro, tenes que cambiar los paréntesis rectos por curvos:

Código PHP:
!(isset($altura)) 
  #9 (permalink)  
Antiguo 27/12/2007, 08:49
GPS
 
Fecha de Ingreso: diciembre-2003
Ubicación: Montevideo, Uruguay
Mensajes: 110
Antigüedad: 16 años
Puntos: 0
Re: Índice de masa corporal en php

También te falta un sigo de igual mas en la comparación de la altura

Código PHP:
($altura == 0
de lo contrario le estas asignándole a la variable altura el valor cero
Saludos
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:44.