Olá Samuel, acredito que vc está sofrendo com um problema um tanto comum em
flex, o assícronismo deve estar lhe prejudicando pois pelo que entendi ele
está mandando os dados para o backend dentro do for porém quando fazemos
isso ele não espera que a requisição termine e já manda outra, de forma que
a primeira não foi terminada, quando vc usa o debug pode ser que vc veja
tudo certinho pois a demora de ficar teclando F6 ajude nesse caso, então
para resumir aconselho vc criar um array de notas e enviar todas as notas de
uma vez só para o backend apois o for, no backend vc percorre e persiste os
dados, no backend vc não tera o mesmo problema que no flex, ele ficara
esperando a linha ser executada para ir para a proxima.

espero ter ajudado.

att:
-- 
Rogério Casal
Software Developer
Fone: 81 8805-4303
www.rogeriocasal.com.br


Em 5 de janeiro de 2011 10:15, Samuel Soares <samuelesoa...@gmail.com>escreveu:

> 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




-- 
Rogério Casal
Software Developer
Fone: 81 8805-4303
www.rogeriocasal.com.br

-- 
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

Responder a