Ir para conteúdo

POWERED BY:

Arquivado

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

HigorChristian

Sistema de avaliação, onde o aluno avalia o desempenho do professor&#

Recommended Posts

Eu estou fazendo um sistema de avaliação onde o aluno faz o login no sistema e pode escolher varios professores para avaliar, essa avaliação tem como meta ver o que o aluno achou do professor em sala de aula , meu problema é o seguinte quando o aluno avaliar um professor esse professor não poderá ser mais avaliado por esse aluno, ai o ícone muda para e A de avaliado, no meu sistema eu verifico se o ícone deve mudar com uma condição IF se retornar true muda de ícone , se o aluno responder respeitando o loop na sequencia 1º , 2º , 3º ta tudo beleza, mais se o aluno tipo quiser escolher o 1º professor para avaliar e depois o 4º ai minha condição IF já não verifica certo e libera todos os professores de novo para ser avaliados por esse aluno, o que devo fazer para resolver isso!

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso e quase um sistema de curtir é pelo que entendi você quer fazer assim, você precisa criar uma tabela vamos chamar aqui de Professor_Avaliado,

Onde terão as seguintes campos:

id;
id_aluno_avaliou;
id_professor;

Bom quando o aluno for avaliar ele vai inserir nessa tabela, ID por automatico, id_aluno_avaliou = Aluno que está logado, id_professor = Professor a ser avaliado, ai lá no código você pode buscar nessa tabela Professor_Avaliado se o aluno já avaliou ele com um IF caso sim irá bota para fazer a des-avaliação no caso e excluir do banco de dados a avaliação dele, e se caso ele não avaliou ele poderá avaliar.

 

Eu entendi isso caso não seja poste os códigos para que possamos ajuda-lo mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo ja criei a tabela avaliação, meu problema e com o loop, se o aluno avaliar o primeiro professor da lista no caso o ince zero do array e depois o aluno decidir avaliar o terceiro o indice 2 do array o sistema buga e libera todos os professores para esse aluno avaliar, mais se o aluno seguir a ordem para avaliar tipo 1º, 2º, 3º o sitema funciona normal!


Aqui o codigo

<?phpob_start(); session_start();   if(!isset($_SESSION['autenticacao']) || $_SESSION['autenticacao'] != true || $_SESSION['admin'] != 2){ header('location: ../index.php'); }   function __autoload($classes){ require  __DIR__.("/classes/".$classes.'.php');}   ?><!DOCTYPE html><html lang="pt-br"><head><meta charset="utf-8"/><title>Escolha do professor a ser avaliado</title><link rel="stylesheet" type="text/css" href="style.css"><link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js</head><body> <div id="geral"> <?phprequire_once 'tlp-include/nav.php'; //*************** Menu?>  <div id="content">  <div class="areaTable"> <table cellpadding="0" cellspacing="0"> <tr><th class="border-left" width="25%" align="left" bgcolor="#ddd">CURSO</th><th width="28%" align="left" bgcolor="#ddd">DISCIPLINA</th><th width="30%" align="left" bgcolor="#ddd">PROFESSOR</th><th width="100%" align="center" bgcolor="#ddd">STATUS DA AVALIAÇÃO</th></tr><?phptry { $selectProfessor = new Select();$selectProfessor->Conecta();$dadosProfessor = $selectProfessor->SelectSql('professor');$selectProfessor->Desconecta(); } catch (Exception $e) { $selecionaDisciplina->Desconecta();echo '<script> alert("'.$e->getMessage().'");</script>'; } $i = 0; foreach ($dadosProfessor as $linhaDados) { if($i % 2 == 0){$cor = "#f9f9f9";}else{$cor = "#eee";}  if (count($linhaDados) > 0) { ?><tr bgcolor="<?php echo $cor; ?>" ><td class="border-left" align="left"><?php echo $linhaDados->nomeCurso; ?></td><td align="left"><?php echo $linhaDados->nomeDisciplina; ?></td><td align="left"><?php echo $linhaDados->nomeProfessor; ?></td><td align="center">  <?php $avaliacao = new Avaliacao(); try { $selectAvaliacao = new Select();$selectAvaliacao->Conecta();$dadosAvaliacao = $selectAvaliacao->SelectSql('avaliacao','professorId','ASC',"usuarioId='".$_SESSION['idUser']."' ");  //Carrega dadosif(count($dadosAvaliacao) > 0){ if(array_key_exists($i, $dadosAvaliacao)){ $avaliacao->CarregaDados($dadosAvaliacao[$i]); } }  $selectAvaliacao->Desconecta(); } catch (Exception $e) { $selectAvaliacao->Desconecta();echo '<script> alert("'.$e->getMessage().'");</script>'; }  if($avaliacao->getStatusAvaliacao() == "A"  and   $avaliacao->getDisciplinaId() == $linhaDados->disciplinaId  and  $avaliacao->getCursoId() == $linhaDados->cursoId  and  $avaliacao->getProfessorId() == $linhaDados->idProfessor ){?> <label> <img src="tlp-img/avaliado.png" alt="Avaliado" title="Avaliado" > </label>  <?php}else{?>  <form action="avaliacao.php" method="post"> <label> <button type="submit" name="reponder" value=""><img src="tlp-img/avaliar.png" alt="Avaliar" title="Avaliar" ></button> <input type="hidden" name="professorId" value="<?php echo $linhaDados->idProfessor; ?>" /><input type="hidden" name="disciplinaId" value="<?php echo $linhaDados->disciplinaId; ?>" /><input type="hidden" name="cursoId" value="<?php echo $linhaDados->cursoId; ?>" /><input type="hidden" name="nomeProfessor" value="<?php echo $linhaDados->nomeProfessor; ?>" /><input type="hidden" name="usuarioId" value="<?php echo $_SESSION['idUser']; ?>" /> </label> </form><!-- Responder -->  <?php}?>  </td> </tr><?php$i++;}}?></table>  </div><!-- fim div tabelaEscolhaAvaliar -->  </div><!-- fim div content -->  </div><!-- fim div geral --> </body></html> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O seu problema está aqui amigo:

$avaliacao->getCursoId() == $linhaDados->cursoId
em vez de você fazer isso de uma query dentro da outra com esses objetos estranhos ai, você deveria fazer um JOIN e numa única query saber se o cara já foi avaliado ou não. Num único loop.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teria um exemplo de como ficaria essa query?

porque JOIN tem que retornar resultado em comum de duas ou mais tabelas, aqui eu uso uma query para listar os professores com nome do professor disciplina e curso, esses dados eu pego da tabela professor, ai eu fiz outra query para pegar dados da tabela avaliação as duas tabelas tem em comum professor_Id ,curso_Id, disciplina_Id

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha cláusula SQL ficou assim

 

$sql = "SELECT DISTINCT professor.*, avaliacao.* FROM professor LEFT JOIN avaliacao ON professor.idProfessor = avaliacao.professorId AND avaliacao.usuarioId = '".$_SESSION['idUser']."'"

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.