No lo entiendo... recoge bien los datos según parece, Lo voy a poner por partes a ver si se encuentra más fácilemente el problema.
Código PHP:
Ver original$altura = $_POST['altura'];
$peso = $_POST['peso'];
Damos el valor de $edad_restada de 0. Pasamos la altura a metros y redondeamos a un decimal. Aplicamos la formula de indice masa muscular. altura en metros * altura en metros / peso.
Código PHP:
Ver original$edad_restada = 0;
$altura_en_metros = $altura / 100;
$imc = $altura_en_metros * $altura_en_metros;
$imc_final = round($peso / $imc,1);
Comparamos los datos de $imc_final y damos el valor a $estado_imc
Código PHP:
Ver originalif($imc_final < 18) {
$estado_imc = 1;
} elseif($imc_final >= 18 and $imc_final < 24.9) {
$estado_imc = 2;
} elseif($imc_final >= 25 and $imc_final < 26.9) {
$estado_imc = 3;
} elseif($imc_final >= 27 and $imc_final < 29.9) {
$estado_imc = 4;
} elseif($imc_final >= 30 and $imc_final < 39.9) {
$estado_imc= 5;
} elseif($imc_final > 40) {
$estado_imc = 6;
}
Si realizo el formulario y lo envio realizo una comprobación para que me imprima el indice de masa muscular y el $estado_imc para ver que todo vaya bien.
Código PHP:
Ver originalecho "Altura: " . $altura . "<br>";
echo "Altura en Metros: " . $altura_en_metros . "<br>";
echo "IMC Final: " . $imc_final . "<br>";
echo "Estado IMC: " . $estado_imc . "<br>";
Muestra lo siguiente:
Cita: Altura: 153
Altura en Metros: 1.53
IMC Final: 38.4
Estado IMC: 5
Por lo que parece que si que realiza las comprobaciones anteriores correctamente.
Creamos las condiciones dependiendo del $estado_imc que tenemos, el cual hemos visto al imprimirlo que si que lo calcula correctamente.
Código PHP:
Ver originalif($estado_imc == 1) {
$edad_restada = $edad_restada + 5;
} elseif($estado_imc == 3) {
$edad_restada = $edad_restada + 5;
} elseif($estado_imc == 4) {
$edad_restada = $edad_restada + 7;
} elseif($estado_imc == 5) {
$edad_restada = $edad_restada + 10;
} elseif($estado_imc == 6) {
$edad_restada = $edad_restada + 15;
}
Pero el resultado sigue siendo 0
EDITO::::
Tenía en algún apartado del código la declaración de la variable a $edad_restada = 0; tal vez por ello siempre me salía 0, aunque no le veo sentido ya que simplemente el código sumaba cantidad a esa cantidad. he eliminado esa declaración de la variable $edad_restada y ahora funciona correctamente.
¿ Quiere decir que si no tengo una variable declarada, es decir no existe, y luego sumo +10 a una variable que no existe, la crea con valor 0 y después le suma ese valor ?