Estou testando um sistema de gerar avaliações escolares on-line. Usamos o Flex 3, PHP e Zend. Basicamente funciona assim: o aluno, ao acessar a área de avaliações, clica na avaliação disponível. Ao acessar a tela aparece o título da avaliação, a disciplina e o nome do professor. As questões estão dispostas em um tabNavigator, cada questão é uma guia. Todas as possíveis respostas das questões são radiobuttons, totalizando no máximo 5 possíveis respostas para cada questão. Após marcar as respostas o aluno clica no botão ‘Finalizar avaliação’ e o sistema já corrige a prova e armazena o resultado. Se a prova for com duas pessoas, é só marcar um checkbox e escolhe o segundo aluno.
Existe um array (arrayRespostas) que armazena as respostas selecionadas pelo aluno. Tá tudo funcionando corretamente, o aluno acessa, visualiza todos os dados e as questões. As possíveis respostas, resolve a avaliação. Tenho um botão de teste que ao clicar nele, baseado no arrayRespostas, visualizo todas as respostas e se estão corretas ou não. O problema está na hora de gravar, ele grava todos os registros. Mas não com os valores corretos. Já monitorei via o programa Charles e os dados são mandados corretamente para gravação. Mas quando grava, cada hora grava as informações de um jeito. Por exemplo, os dados como o ID da avaliação, ID da turma são dados que não mudam. No Charles está tudo certo, mas quando grava, principalmente nos registros finais, outros ID’s são adicionados nos campos. A quantidade de registros equivale as questões, por exemplo, 5 questões = 5 registros. Mas as informações dos registros não batem com o que o Flex passa para o PHP. A dúvida é, tem algum limite de requisições para o RemoteObject ? Baseado no exemplo, envio 5 requisições de inclusão. Parece que ele “mistura” os valores dos registros. Já fiz várias modificações, vários testes, mas nada. Talvez outras pessoas olhando o sistema, veja o erro que eu não estou vendo. Segue abaixo os códigos: Instruções SQL capturadas através do PHP e gravadas em um arquivo TXT. Tem instrução aí que tem até um GUID. INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao, nav_questao, nav_resposta, nav_nota)VALUES('5', '4', '3', '1', '3', '1.00') INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao, nav_questao, nav_resposta, nav_nota)VALUES('5', '3', '3', '1', '3', '1.00') INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao, nav_questao, nav_resposta, nav_nota)VALUES('5', '4', '3', '5', '2', '0') INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao, nav_questao, nav_resposta, nav_nota)VALUES('5', '3', '3', '1.00', '2', '0') INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao, nav_questao, nav_resposta, nav_nota)VALUES('5', '4', '3', '1.00', '1', '0') INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao, nav_questao, nav_resposta, nav_nota)VALUES('5', '3', '3', '3', '1', '0') INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao, nav_questao, nav_resposta, nav_nota)VALUES('5', '4', '3', '3', '3', '1.00') INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao, nav_questao, nav_resposta, nav_nota)VALUES('5', '3', '3', '1.00', '4', '1.00') INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao, nav_questao, nav_resposta, nav_nota)VALUES('5', '4', '3', '068507D5-18F9-FCC8-62FB-000028D1C54A', '2', '1.00') INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao, nav_questao, nav_resposta, nav_nota)VALUES('5', '3', '3', '1', '2', '1.00') CODIGO AS3: for (i=0; i < this.ArrayRespostas.length; i++) { var nota:Modelo_Notas_Avaliacoes = new Modelo_Notas_Avaliacoes(); nota.turma = this.IDTurma; nota.aluno = this.IDAluno; nota.avaliacao = this.IDAvaliacao; nota.questao = this.ArrayRespostas[i]["questao"]; nota.resposta = this.ArrayRespostas[i]["resposta"]; nota.nota = this.ArrayRespostas[i]["nota"]; roNotas.IncluirNota(this.IDEscola, nota); if (check2aluno.selected == true) { var nota2:Modelo_Notas_Avaliacoes = new Modelo_Notas_Avaliacoes(); nota2.turma = this.IDTurma; nota2.aluno = cboAlunos.selectedItem.alu_id; nota2.avaliacao = this.IDAvaliacao; nota2.questao = this.ArrayRespostas[i]["questao"]; nota2.resposta = this.ArrayRespostas[i]["resposta"]; nota2.nota = this.ArrayRespostas[i]["nota"]; roNotas.IncluirNota(this.IDEscola, nota2); } } CÓDIGO PHP: function IncluirNota($escola, $nota=Modelo_Notas_Avaliacoes) { // Conecta o banco de dados $bd = new BancoDeDados(); $cn = $bd->ConectarEscola($escola); $sql = ""; $sql .= "INSERT INTO ge_notas_avaliacoes(nav_turma, nav_aluno, nav_avaliacao, nav_questao, nav_resposta, nav_nota)"; $sql .= "VALUES("; // Turma $sql .= "'" . $nota->turma . "', "; // Aluno $sql .= "'" . $nota->aluno . "', "; // Avaliacao $sql .= "'" . $nota->avaliacao . "', "; // Questao $sql .= "'" . $nota->questao . "', "; // Resposta $sql .= "'" . $nota->resposta . "', "; // Nota $sql .= "'" . $nota->nota . "')"; $consulta = mysql_query($sql) or die(mysql_error() . $sql); // Grava o arquivo txt $fp = fopen("arquivo.txt", "a"); $escreve = fwrite($fp, $sql . "\n"); fclose($fp); if (!mysql_error()) { return true; } else { return false; } } Agradeço a ajuda. -- Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com Mais opções estão disponíveis em http://groups.google.com/group/flexdev