Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal,
Estou com um problema para somar os resultados da tabela.
É o seguinte, tenho 3 tabelas diferentes:
Tabela alunos: id - nome - periodo (o id que da o valor para o id_aluno das tabelas abaixo)
Tabela aulas: id_aluno - sala
Tabela contrato: id_aluno - valor
Estou fazendo uma página que organize as salas e os periodos. Vai ficar assim:
Sala 1 - Manhã
Joãozinho - R$ 300,00
Mariazinha - R$ 500,00
Total: 2 alunos - R$ 800,00
Não estou conseguindo somar esses resultados. Esse é o meu código que apenas mostra os alunos e o valor.
$result = mysql_query("SELECT * FROM alunos_aulas WHERE sala=1");
while($row = mysql_fetch_array($result))
{
$periodo = "Manhã";
$periodo2 = "Manhã";
$id=$row['id'];
$aluno = mysql_query("SELECT * FROM alunos WHERE id=$id AND periodo='$periodo' || periodo='$periodo2' ");
$linha = mysql_fetch_row($aluno);
{
if ($linha[1] > "")
{
echo '<div class="box"><div class="nome">'.$linha [1];
echo "</div>";
$contrato = mysql_query("SELECT * FROM contratos WHERE id=$id");
$linha2 = mysql_fetch_row($contrato);
{
echo '<div class="valor">'.$linha2 [5];
echo "</div></div>";
}
}
}
Alguem sabe como fazer essa soma?
Obrigado
Tb há uma outra maneira simples...
$total = 0; // Aqui definimos esta variável com 0, ela será responsável para somar cada valor.
$result = mysql_query("SELECT * FROM alunos_aulas WHERE sala=1");
while($row = mysql_fetch_array($result))
{
$periodo = "Manhã";
$periodo2 = "Manhã";
$id=$row['id'];
$aluno = mysql_query("SELECT * FROM alunos WHERE id=$id AND periodo='$periodo' || periodo='$periodo2' ");
$linha = mysql_fetch_row($aluno);
{
if (isset($linha[1]) && !empty($linha[1])) //aki eu mudei seu codigo se não achar ruim kkk!
{
echo '<div class="box"><div class="nome">'.$linha [1];
echo "</div>";
$contrato = mysql_query("SELECT * FROM contratos WHERE id=$id");
$linha2 = mysql_fetch_row($contrato);
$total += $linha2[5]; //Observe que aki eu define a variavel $total como '+=' ou seja ella ira somar o valor della mais o da $linha[5], que no final do loop while, você terá o total de todos os Valores.
echo '<div class="valor">'.$linha2[5];
echo "</div></div>";
}
}
}
echo $total;>
Tb há uma outra maneira simples...
$total = 0; // Aqui definimos esta variável com 0, ela será responsável para somar cada valor.
$result = mysql_query("SELECT * FROM alunos_aulas WHERE sala=1");
while($row = mysql_fetch_array($result))
{
$periodo = "Manhã";
$periodo2 = "Manhã";
$id=$row['id'];
$aluno = mysql_query("SELECT * FROM alunos WHERE id=$id AND periodo='$periodo' || periodo='$periodo2' ");
$linha = mysql_fetch_row($aluno);
{
if (isset($linha[1]) && !empty($linha[1])) //aki eu mudei seu codigo se não achar ruim kkk!
{
echo '<div class="box"><div class="nome">'.$linha [1];
echo "</div>";
$contrato = mysql_query("SELECT * FROM contratos WHERE id=$id");
$linha2 = mysql_fetch_row($contrato);
$total += $linha2[5]; //Observe que aki eu define a variavel $total como '+=' ou seja ella ira somar o valor della mais o da $linha[5], que no final do loop while, você terá o total de todos os Valores.
echo '<div class="valor">'.$linha2[5];
echo "</div></div>";
}
}
}
echo $total;
Opa, o resultado está dando 0. Os valores estão com o R$ na frente... será que é por isso?
valeuu
Testa do modo que coloquei agorah, :D/>
$total = 0; // Aqui definimos esta variável com 0, ela será responsável para somar cada valor.
$result = mysql_query("SELECT * FROM alunos_aulas WHERE sala=1");
while($row = mysql_fetch_array($result))
{
$periodo = "Manhã";
$periodo2 = "Manhã";
$id=$row['id'];
$aluno = mysql_query("SELECT * FROM alunos WHERE id=$id AND periodo='$periodo' || periodo='$periodo2' ");
$linha = mysql_fetch_row($aluno);
{
if (isset($linha[1]) && !empty($linha[1]))
{
echo '<div class="box"><div class="nome">'.$linha [1];
echo "</div>";
$contrato = mysql_query("SELECT * FROM contratos WHERE id=$id");
$linha2 = mysql_fetch_row($contrato);
$total += (int)$linha2[5]; //Observe que aki eu define a variavel $total como '+=' ou seja ella ira somar o valor della mais o da $linha[5], que no final do loop while, você terá o total de todos os Valores.
echo '<div class="valor">'.$linha2[5];
echo "</div></div>";
}
}
}
echo $total;>
Testa do modo que coloquei agorah, :D/>/>/>/>
$total = 0; // Aqui definimos esta variável com 0, ela será responsável para somar cada valor.
$result = mysql_query("SELECT * FROM alunos_aulas WHERE sala=1");
while($row = mysql_fetch_array($result))
{
$periodo = "Manhã";
$periodo2 = "Manhã";
$id=$row['id'];
$aluno = mysql_query("SELECT * FROM alunos WHERE id=$id AND periodo='$periodo' || periodo='$periodo2' ");
$linha = mysql_fetch_row($aluno);
{
if (isset($linha[1]) && !empty($linha[1]))
{
echo '<div class="box"><div class="nome">'.$linha [1];
echo "</div>";
$contrato = mysql_query("SELECT * FROM contratos WHERE id=$id");
$linha2 = mysql_fetch_row($contrato);
$total += (int)$linha2[5]; //Observe que aki eu define a variavel $total como '+=' ou seja ella ira somar o valor della mais o da $linha[5], que no final do loop while, você terá o total de todos os Valores.
echo '<div class="valor">'.$linha2[5];
echo "</div></div>";
}
}
}
echo $total;
Não ta rolando não mano. O resultado está dando zero.
ta complicado rs
Os valores estão com o R$ na frente la no banco de dados... Ta assim os numeros ( R$ 300,00 )
Obrigado... A sua lógica estava certa. Eu só precisei tratar as variáveis.
Veja como ficou!
:clap:
Valeuu
$total = 0;
$quantidade = 0;
$result = mysql_query("SELECT * FROM alunos_aulas WHERE van=1 AND TIME(horario) BETWEEN '05:00:00' AND '09:00:00' GROUP by id_aluno");
while($row = mysql_fetch_array($result))
{
$id=$row['id_aluno'];
$aluno = mysql_query("SELECT * FROM alunos WHERE id=$id");
$linha = mysql_fetch_row($aluno);
{
if (isset($linha[1]) && !empty($linha[1]))
{
echo "<div class='box'><div class='nome'>".$linha [1]."</div>";
$contrato = mysql_query("SELECT * FROM contratos WHERE id=$id");
$linha2 = mysql_fetch_row($contrato);
$antigo = array("R$"," ", ",");
$novo = array("","", ".");
{
$linha3 = str_replace($antigo, $novo, $linha2 [5]);
echo "<div class='valor'>R$ ".$linha3;
echo "</div></div>";
$total += $linha3;
$quantidade += 1;
}
}
}
}
echo "<div class='box'><div class='nome'><strong>".$quantidade." Alunos</strong></div>";
echo "<div class='valor'><strong>R$ ".$total."</strong></div></div>";;p
Dê uma pesquisada sobre with rollup.