Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Web Design Valdeci

Problema em listar nota em sistema

Recommended Posts

Boa Tarde Pessoal,

 

Fiz um sistema academico onde o aluno vê sua nota e suas faltas, formatei o sistema para quando o aluno estiver na 5ª série por exemplo, o sistema lista na consulta do aluno todas as matérias vinculadas a 5ª ´série, até ai tudo bem. O problema é na hora de listar as notas. Eles dividem as notas em 2 trabalhos e 2 provas. Já consegui listar o aluno, as matérias, as faltas referente as matérias tudo direitinho, mas na hora das notas, elas até listam mas está dando um erro que é o seguinte: Tenho 5 matérias cadastradas, matematica, portugues, biologia, geografia, historia. Se eu colocar a nota em matematica o sistema lista a mesma nota para as outras matérias, sendo que não coloquei nota alguma nas outras, acho que meu erro é no while. Vou colocar mais ou menos como formatei meu banco para que voces entendam como fiz para listar tudo que colocarei abaixo.

 

Utilizo banco Mysql e asp

 

utilizo as tabelas: grade, alunos, oferta(oferta é porque existem as tabelas disciplina e professor, nela eu associo o professor à disciplina), professor, cadnota, frequencia, disciplina.

 

abaixo segue o script que uso para listar tudo. se alguem puder me ajudar serei grato.

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="../assets/conexao/conexao.asp" -->
<%
If IsEmpty(Session("login")) Then
Response.redirect("index.asp")
End if


Set cs01 = Server.CreateObject("ADODB.Recordset")
cs01.open ("SELECT * FROM alunos WHERE NrMatricula='"&Session("lgn")&"' AND senha='"&Session("snh")&"'"), Conexao

IdNomeAno = Request.QueryString("opc")
Set cs_Alunos = Server.CreateObject("ADODB.RecordSet")
cs_Alunos.open "SELECT * FROM Ano Where id = "&IdNomeAno&" ORDER BY NOME ASC", Conexao
While (Not cs_alunos.EOF)
NomeAno = cs_alunos.Fields.Item("Nome").Value
cs_alunos.MoveNext()
Wend

QueryAno = Request.QueryString("opc")
VarIdAluno = cs01.Fields.Item("NrMatricula").Value
Set CsGrade = Server.CreateObject("ADODB.RecordSet")
CsGrade.open "SELECT * FROM Grade WHERE IdAluno = "&VarIdAluno&" and IdAno = "&QueryAno&"", Conexao

%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<style type="text/css">
<!--
body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
	background-color: #F8F8F8;
}
-->
</style>
<link href="../assets/css/estilo.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.style5 {	font-size: 16px;
	color: #FF9900;
	font-weight: bold;
}
.style6 {font-size: 13px}
.style6 {font-size: 13px}
#navcontainer {width: 170px; }
#navcontainer {width: 170px; }
#navcontainer { width: 170px; }

#navcontainer ul
{
margin-left: 0;
padding-left: 0;
list-style-type: none;
font-family:  "Trebuchet MS";
}

#navcontainer a
{
display: block;
padding: 2px;
width: 170px;
background-color: #A5C3D2;
border-bottom: 1px solid #AAD4C4;
}

#navcontainer a:link, #navlist a:visited
{
color: #FFFFFF;
text-decoration: none;
}

#navcontainer a:hover
{
background-color:#88B7F7;
color: #fff;
}
-->
</style>
</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
	<td bgcolor="#F1F1F2"><div align="left">
	  <table width="779" height="111" border="0" cellpadding="0" cellspacing="0">
		<tr>
		  <td background="../Assets/img/superiorAcademico.gif"><form id="form1" name="form1" method="post" action="logar.asp">
			<table width="549" border="0" align="right" cellpadding="0" cellspacing="3">
			  <tr>
				<td width="67" class="txt_cinza_11"> </td>
				<td width="113" class="txt_cinza_11"> </td>
				<td width="50" height="19" class="txt_cinza_11"> </td>
				<td width="102"> </td>
				<td width="38"> </td>
				<td width="104"> </td>
				<td width="51" height="19"> </td>
			  </tr>
			  <tr>
				<td class="txt_cinza_11"> </td>
				<td class="txt_cinza_11"> </td>
				<td height="19" class="txt_cinza_11"> </td>
				<td> </td>
				<td> </td>
				<td> </td>
				<td height="19"> </td>
			  </tr>
			  <tr>
				<td height="19" colspan="7" class="txt_cinza_11"><table width="100%" border="0" cellspacing="5" cellpadding="0">
					<tr>
					  <td><span class="txt_cinza_11">Bem-Vindo <%=cs01.Fields.Item("nome").Value%> -</span> <a href="errou.asp" class="link_cinza_under">Clique aqui para sair</a></td>
					</tr>
				</table></td>
			  </tr>
			</table>
		  </form>
			</td>
		</tr>
	  </table>
	</div></td>
  </tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
	<td width="863" height="460" valign="top"><table width="96%" border="0" cellspacing="0" cellpadding="0">
	  <tr>
		<td width="21%" height="460" valign="top" bgcolor="#A5C3D2"><div id="navcontainer">
		  <ul id="navlist">
			<li><a href="menu.asp?opc=<%=Request.QueryString("opc")%>" class="style6">Página Inicial </a></li>
			<li id="active"><a href="altSenha.asp?opc=<%=Request.QueryString("opc")%>&val=editar&id=<%=cs01.Fields.Item("NrMatricula").Value%>" class="style6">Alterar Dados Cadastrais </a></li>
			<li><a href="disciplinas.asp?opc=<%=Request.QueryString("opc")%>" class="style6">Disc. Matriculadas </a></li>
			<li><a href="estrutura.asp?opc=<%=Request.QueryString("opc")%>" class="style6">Estrutura Curricular </a></li>
			<li><a href="NotasFaltas.asp?opc=<%=Request.QueryString("opc")%>" class="style6">Notas e Faltas </a></li>
			<li><a href="arquivos.asp?opc=<%=Request.QueryString("opc")%>" class="style6">Arquivos Intranet </a></li>
			<li><a href="informativos.asp?opc=<%=Request.QueryString("opc")%>" class="style6">Informativos</a></li>
		  </ul>
		</div></td>
		<td width="79%" valign="top"><table width="100%" border="0" cellspacing="10" cellpadding="0">
		  <tr>
			<td class="sub_titulo12"><img src="../Assets/img/46.gif" width="20" height="16"> Notas e Faltas Período <%=NomeAno%> </td>
		  </tr>
		</table>
		  <table width="100%" border="0" align="center" cellpadding="0" cellspacing="1">
			<tr>
			  <td width="10%" bgcolor="#D1E1E9" class="txt_cinza_11_bold"><div align="center">Turma</div></td>
				  <td width="12%" bgcolor="#D1E1E9" class="txt_cinza_11_bold"><div align="center">Disciplina</div></td>
				  <td width="8%" bgcolor="#D1E1E9" class="txt_cinza_11_bold"><div align="center">Faltas / Max. Faltas </div></td>
				  <td width="9%" bgcolor="#D1E1E9" class="txt_cinza_11_bold"><div align="center">Trab. 1º<br>
					M</div></td>
				  <td width="9%" bgcolor="#D1E1E9" class="txt_cinza_11_bold"><div align="center">Trab. 1º M1</div></td>
				  <td width="9%" bgcolor="#D1E1E9" class="txt_cinza_11_bold"><div align="center">Prova 1º M</div></td>
				  <td width="9%" bgcolor="#D1E1E9" class="txt_cinza_11_bold"><div align="center">Prova 1º M1</div></td>
				  <td width="12%" bgcolor="#D1E1E9" class="txt_cinza_11_bold"><div align="center">Recuperação</div></td>
				  <td width="9%" bgcolor="#D1E1E9" class="txt_cinza_11_bold"><div align="center">Soma Notas </div></td>
				  <td colspan="2" bgcolor="#D1E1E9" class="txt_cinza_11_bold"><div align="center">Resultado<br>
					Final </div></td>
			  </tr> <%
While (not CsGrade.EOF)
VarIdGrade = CsGrade.Fields.Item("Id").Value
VarIdPeriodo = CsGrade.Fields.Item("IdOferta").Value
VarIdTurma = CsGrade.Fields.Item("IdTurma").Value

Set CsOferta = Server.CreateObject("ADODB.RecordSet")
CsOferta.open "SELECT * FROM Oferta WHERE idPeriodo = "&VarIdPeriodo&"", Conexao
While (not CsOferta.EOF)
CsIdferta = CsOferta.Fields.Item("Id").Value
CsIdProfessor = CsOferta.Fields.Item("IdProfessor").Value
CsIdDisciplina = CsOferta.Fields.Item("IdDisciplina").Value
CsIdPeriodo = CsOferta.Fields.Item("IdPeriodo").Value
CsIdExibir = CsOferta.Fields.Item("exibir").Value

Set CsDisciplina = Server.CreateObject("ADODB.RecordSet")
CsDisciplina.open "SELECT * FROM Disciplina Where id = "&CsIdDisciplina&" ORDER BY NOME ASC", Conexao
While (not CsDisciplina.EOF)
VarNomeDisciplina = CsDisciplina.Fields.Item("nome").Value

IdAlunoNota = cs01.Fields.Item("NrMatricula").Value
Set CsCadNota = Server.CreateObject("ADODB.RecordSet")
CsCadNota.open "SELECT * FROM CadNota Where IdOferta = "&CsIdferta&" and IdAluno = "&IdAlunoNota&" and IdAvaliacao = 1", Conexao
While (not CsCadNota.EOF)
VarIdAvaliacao = CsCadNota.Fields.Item("IdAvaliacao").Value
VarValorAvaliacao = CsCadNota.Fields.Item("valor").Value
CsCadNota.MoveNext()
Wend

Set CsCadNota1 = Server.CreateObject("ADODB.RecordSet")
CsCadNota1.open "SELECT * FROM CadNota Where IdOferta = "&CsIdferta&" and IdAluno = "&IdAlunoNota&" and IdAvaliacao = 2", Conexao
While (not CsCadNota1.EOF)
VarIdAvaliacao1 = CsCadNota1.Fields.Item("IdAvaliacao").Value
VarValorAvaliacao1 = CsCadNota1.Fields.Item("valor").Value
CsCadNota1.MoveNext()
Wend

Set CsCadNota2 = Server.CreateObject("ADODB.RecordSet")
CsCadNota2.open "SELECT * FROM CadNota Where IdOferta = "&CsIdferta&" and IdAluno = "&IdAlunoNota&" and IdAvaliacao = 3", Conexao
While (not CsCadNota2.EOF)
VarIdAvaliacao2 = CsCadNota2.Fields.Item("IdAvaliacao").Value
VarValorAvaliacao2 = CsCadNota2.Fields.Item("valor").Value
CsCadNota2.MoveNext()
Wend

Set CsCadNota3 = Server.CreateObject("ADODB.RecordSet")
CsCadNota3.open "SELECT * FROM CadNota Where IdOferta = "&CsIdferta&" and IdAluno = "&IdAlunoNota&" and IdAvaliacao = 4", Conexao
While (not CsCadNota3.EOF)
VarIdAvaliacao3 = CsCadNota3.Fields.Item("IdAvaliacao").Value
VarValorAvaliacao3 = CsCadNota3.Fields.Item("valor").Value
CsCadNota3.MoveNext()
Wend


CsDisciplina.MoveNext()
Wend
Set CsProfessor = Server.CreateObject("ADODB.RecordSet")
CsProfessor.open "SELECT * FROM Professor Where id = "&CsIdProfessor&" ORDER BY NOME ASC", Conexao
While (not CsProfessor.EOF)
VarNomeProfessor = CsProfessor.Fields.Item("nome").Value
CsProfessor.MoveNext()
Wend

Set CsTurma = Server.CreateObject("ADODB.RecordSet")
CsTurma.open "SELECT * FROM Turma Where id = "&VarIdTurma&" ORDER BY NOME ASC", Conexao
While (not CsTurma.EOF)
VarNomeTurma = CsTurma.Fields.Item("nome").Value
CsTurma.MoveNext()
Wend


FreqAluno = cs01.Fields.Item("NrMatricula").Value
Set CsFaltas = Server.CreateObject("ADODB.RecordSet")
CsFaltas.open "SELECT * FROM Frequencia Where IdOferta = "&CsIdferta&" and Ausente = "&FreqAluno&" ORDER BY data ASC", Conexao
i=0
Do while not CsFaltas.eof
i=i+1
CsFaltas.movenext
loop



Aprovado = 60
Aprovado1 = 59
TotalNotas = VarValorAvaliacao + VarValorAvaliacao1 + VarValorAvaliacao2 + VarValorAvaliacao3

%>
			<tr>
			  <td width="10%" bgcolor="#E8E8E8" class="txt_cinza_11"><div align="center"><%=VarNomeTurma%></div></td>
				  <td width="12%" bgcolor="#E8E8E8"><div align="left" class="txt_cinza_11">
					<div align="center"><%=VarNomeDisciplina%></div>
				  </div></td>
				  <td width="8%" bgcolor="#E8E8E8" class="txt_cinza_11"><div align="center"><% =i%>
					/ 30 </div></td>
				  <td width="9%" bgcolor="#E8E8E8"><div align="center" class="txt_cinza_11"><%if VarValorAvaliacao <> "" then%><%=VarValorAvaliacao%><%end if%></div></td>
				  <td width="9%" bgcolor="#E8E8E8"><div align="center" class="txt_cinza_11"><%if VarValorAvaliacao1 <> "" then%><%=VarValorAvaliacao1%><%end if%></div></td>
				  <td width="9%" bgcolor="#E8E8E8"><div align="center" class="txt_cinza_11"><%if VarValorAvaliacao2 <> "" then%><%=VarValorAvaliacao2%><%end if%></div></td>
				  <td width="9%" bgcolor="#E8E8E8"><div align="center" class="txt_cinza_11"><%if VarValorAvaliacao3 <> "" then%><%=VarValorAvaliacao3%><%end if%></div></td>
				  <td width="12%" bgcolor="#E8E8E8" class="txt_cinza_11"><div align="center">
				   <%if date() = "12/12/2009" then%> <%If TotalNotas < Aprovado then
Response.Write("Sim")
Else
Response.Write("Não")
End if%><%end if%>
					</div></td>
				  <td width="9%" bgcolor="#E8E8E8" class="txt_cinza_11"><div align="center"><%=TotalNotas%></div></td>
				  <td colspan="2" bgcolor="#E8E8E8"><div align="center" class="txt_cinza_11"><a>
					<%if date() = "12/12/2009" then%><%If TotalNotas > Aprovado1 then
Response.Write("Aprovado")
Else
Response.Write("Reprovado")
End if%><%end if%>
					</a></div></td>
			  </tr>
			<tr>
			  <td height="1" colspan="10" background="assets/img/barra_separar.jpg"><img src="assets/img/blank.gif" width="1" height="1"></td>
				  <td width="4%"><img src="assets/img/blank.gif" width="1" height="1"></td>
			  </tr>
			<%
			CsOferta.MoveNext()
Wend
CsGrade.MoveNext()
Wend
%>
		  </table></td></tr>
	</table></td>
	<td width="91" valign="top"><div align="right"><img src="../Assets/img/imgLateral.gif" width="83" height="460"></div></td>
  </tr>
</table>
<p> </p>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O ideal é você fazer um INNER JOIN entre as tabelas.

 

Você está lendo uma por uma, logo o valor armazenado está sendo do último registro lido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

lembrando que a importância de uma modelagem de dados bem definida até os mínimos detalhes, como os campos de relacionamentos, é como sempre falo, um relacionamento bem definido é a alma de um aplicativo, pois daí saem todas as consultas e operações com o bd, influenciando diretamente na otimização e performance de sua página, entao verifique tb como estao seus relacionamentos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.