Jump to content
Bianka__As

IF em PHP

Recommended Posts

USO O NETBEANS E FIZ UM SCRIPT BEM SIMPLES PARA CALCULAR A MÉDIA ENTRE QUATRO NOTAS, PORÉM SÓ RETORNA O VALOR 0 E "REPROVADO" MESMO QUANDO EU COLOCO NOTAS AUTAS PARA A REALIZAÇÃO DO CÁLCULO. SEGUE O CÓDIGO:

 

 

*O ARQUIVO form.php:
<html>
<body>
<form action="nota.php" method="POST"  name="form">
   Nota1:<input type="text" name="n1"><br>
   Nota2:<input type="text" name="n2"><br>
   Nota3:<input type="text" name="n3"><br>
   Nota4:<input type="text" name="n4"><br>
   <input type="submit" value="Calcular">
 </form>
</body>
</html>
 
 
*O ARQUIVO nota.php:
<?php
 
$n1=$_POST['n1'];
$n2=$_POST['n2'];
$n3=$_POST['n3'];
$n4=$_POST['n4'];
$media=($n1+$n2+$n3+$n4)/4;
 
if($media>=7){
echo  "Média: $media<br>Você foi aprovado!!!"; 
}
else{
 echo "Média: $media<br>Você foi reprovado!!!"; 
 }
 ?>
Edited by Vinicius Ianni
Adicionar BBCode

Share this post


Link to post
Share on other sites

Sim amigo porém teria que retornar algum valor o calculo não vejo erro no código para retornar o valor exato 0.

 

você usa $n4, mas não existe o input para essa nota. Logo, o script considera-a como zero. Assim a média fica baixa mesmo

 

Share this post


Link to post
Share on other sites

Sim amigo porém teria que retornar algum valor o calculo não vejo erro no código para retornar o valor exato 0.

$n4 é considerado 0, não o resultado final

Assim, o aluno só será aprovado se tirar 10 nas 3 provas (30 / 4 = 7,5, que é maior que 7)

Share this post


Link to post
Share on other sites

Sim mas ela da echo na média então se ela coloca valores nas 3 médias vai ser reprovado mas não daria 0 :/

$n4 é considerado 0, não o resultado final

Assim, o aluno só será aprovado se tirar 10 nas 3 provas (30 / 4 = 7,5, que é maior que 7)

Share this post


Link to post
Share on other sites

Sim mas ela da echo na média então se ela coloca valores nas 3 médias vai ser reprovado mas não daria 0 :/

Você não entendeu.

Eu disse que o n4 é sempre zero

 

Ou seja. Supondo todas as notas 10:

 

n1 = 10

n2 = 10

n3 = 10

n4 = 0, sempre, já que não existe input pra ele. Na verdade será null, mas o PHP considerará 0 durante operações matemáticas

media = (10 + 10 + 10 + 0 ) / 4 = 30 / 4 = 7,5

Share this post


Link to post
Share on other sites

você usa $n4, mas não existe o input para essa nota. Logo, o script considera-a como zero. Assim a média fica baixa mesmo

 

Você não entendeu.

Eu disse que o n4 é sempre zero

 

Ou seja. Supondo todas as notas 10:

 

n1 = 10

n2 = 10

n3 = 10

n4 = 0, sempre, já que não existe input pra ele. Na verdade será null, mas o PHP considerará 0 durante operações matemáticas

media = (10 + 10 + 10 + 0 ) / 4 = 30 / 4 = 7,5

Eu só esqueci o campo de texto a hora de copiar aqui, mas lá está com todos os inputs, o que não entendo é o pq de o netbeans está retornando sempre o valor zero e sempre reprovado se já vi scripts iguais a este, acho que o problema pode estar no IDE, algum plugin desatualizado, não sei. Gostaria que alguém testasse esse código pra ver se ta funcionando corretamente. Na verdade não está fazendo cálculo nenhum, sempre retornando zero, testei até com uma simples soma.

Share this post


Link to post
Share on other sites

1 obs: só por via das dúvidas, nessa linha acho q estão faltando aspas:

 

echo Média: $media.<br>Você foi aprovado!!!";

 

tente assim (ou verifique seu código):

echo  "Média: $media.<br>Você foi aprovado!!!";

ah, aproveite e verifique esse ponto de concatenação

Share this post


Link to post
Share on other sites

tente colocar no input>submit um name="calcular"

 

aqui eu fiz e rodou, mas aproveitei na mesma pagina com if(isset($_POST['calcular'])){}, e com form action=""

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.