Cálculo de média
Boa noite, estou tentando criar uma função no meu php para fazer a média de 4 notas. Consegui fazer a função, porém quando implemento ela só me passa a listar um aluno somente.
Tenho as funções abaixo que trazem os valores do banco das notas dadas:
<td align="center">
<?=@mysql_result(mysql_query("SELECT n1 FROM notas WHERE id_aluno=$coluna[id_aluno] AND id_periodo=$col_periodo[id_periodo] AND id_serie=$_SESSION[id_serie] AND id_materia=$_SESSION[id_materia]"),0,n1)?>
</td>
<td align="center">
<?=@mysql_result(mysql_query("SELECT n2 FROM notas WHERE id_aluno=$coluna[id_aluno] AND id_periodo=$col_periodo[id_periodo] AND id_serie=$_SESSION[id_serie] AND id_materia=$_SESSION[id_materia]"),0,n2)?>
</td>
<td align="center">
<?=@mysql_result(mysql_query("SELECT n3 FROM notas WHERE id_aluno=$coluna[id_aluno] AND id_periodo=$col_periodo[id_periodo] AND id_serie=$_SESSION[id_serie] AND id_materia=$_SESSION[id_materia]"),0,n3)?>
</td>
<td align="center">
<?=@mysql_result(mysql_query("SELECT n4 FROM notas WHERE id_aluno=$coluna[id_aluno] AND id_periodo=$col_periodo[id_periodo] AND id_serie=$_SESSION[id_serie] AND id_materia=$_SESSION[id_materia]"),0,n4)?>
</td>
Até aí está tranquilo, e lista todos os alunos. Mas agora criei um campo e criei uma função para fazer a média dessas 4 notas que estão no banco. A função abaixo:
<?php
$sql = "SELECT * FROM notas WHERE id_aluno=$coluna[id_aluno] AND id_periodo=$col_periodo[id_periodo] AND id_serie=$_SESSION[id_serie] AND id_materia=$_SESSION[id_materia]";
$media = mysql_query($sql);
while($linha=mysql_fetch_array($media))
{
$media = ($linha["n1"] + $linha["n2"] + $linha["n3"] + $linha["n4"])/4.00;
echo $media;
}
?>
Quando eu coloco essa função ele faz o cálculo e insere a média no campo criado, mas ele passa a listar somente um aluno.
Já retirei a condição do aluno como falado, porém continua a listar somente 1 aluno.
O problema está nessa função, já tentei as seguintes formas como abaixo:
<?php
$sql = "SELECT * FROM notas";
$media = mysql_query($sql);
while($linha=mysql_fetch_array($media))
{
$media = ($linha["n1"] + $linha["n2"] + $linha["n3"] + $linha["n4"])/4.00;
echo $media;
}
?>
Ou:
<?php
$sql = "SELECT * FROM notas WHERE id_aluno=$coluna[id_aluno] ";
$media = mysql_query($sql);
while($linha=mysql_fetch_array($media))
{
$media = ($linha["n1"] + $linha["n2"] + $linha["n3"] + $linha["n4"])/4.00;
echo $media;
}
?>
Ou ainda:
<?php
$sql = "SELECT * FROM notas WHERE id_periodo=$col_periodo[id_periodo] AND id_serie=$_SESSION[id_serie] AND id_materia=$_SESSION[id_materia]";
$media = mysql_query($sql);
while($linha=mysql_fetch_array($media))
{
$media = ($linha["n1"] + $linha["n2"] + $linha["n3"] + $linha["n4"])/4;
echo $media;
}
?>
Então o problema está unicamente na função que cria a média. Ou se tem outro método de se criar a média ou tenho de achar uma solução para esse problema.
Discussão (7)
Carregando comentários...