Sistema de respostas de perguntas Pessoal, gostaria de uma luz! Trabalho com desenvolvimento a 20 anos mas sou novo no PHP e orientação a objeto. Estou desenvolvendo um sistema com o Adianti para resposta de perguntas de múltiplas escolhas. Vou ter um banco de pergunats, com suas possiveis respostas e um flag marcando qual a correta. Mas preciso criar um formulário que carregue uma lista dessas perguntas com suas poss...
SS
Sistema de respostas de perguntas  
Pessoal, gostaria de uma luz!

Trabalho com desenvolvimento a 20 anos mas sou novo no PHP e orientação a objeto.

Estou desenvolvendo um sistema com o Adianti para resposta de perguntas de múltiplas escolhas. Vou ter um banco de pergunats, com suas possiveis respostas e um flag marcando qual a correta.

Mas preciso criar um formulário que carregue uma lista dessas perguntas com suas possíveis respostas, onde a lista seria randomica.

Estou sem visualizar como fazer o random, das perguntas, ramdom das possíveis respostas (para nunca estarem na mesma ordem de exibição) e listar todas as questões de uma vez só na mesma página dinamicamente (como se fosse cada questão, um form).

Alguém tem alguma dica?

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (3)


TB

Olá.

Estou desenvolvendo isso agora ;)
A estrutura que tenho de BD é: Uma tabela com as perguntas, uma tabela com as alternativas e uma tabela com a ordem das alternativas (preciso dessa última pois gero várias questões simultâneas e preciso saber qual delas o aluno está respondendo, pois os sistema roda em offline)
O método que uso para sortear as alternativas é esse

//sorteia as alternativas da questão private function sorteiaAlternativas($numeroprova, $numeroquestao, $questao){ $rep = new TRepository('QuestoesAlternativas'); $criterio = new TCriteria; $criterio->add(new TFilter('questoes_id','=',$questao->id)); $objetos = $rep->load($criterio);; $qtd_alternativas = count($objetos); $ordem_alternativas = array(); $i=0; while($i<$qtd_alternativas) { $id_alt_aux = rand(0,$qtd_alternativas-1); if(!in_array($objetos[$id_alt_aux]->id,$ordem_alternativas)) { array_push($ordem_alternativas, $objetos[$id_alt_aux]->id); $i++; } } $this->gravaProvaGerada($numeroprova, $numeroquestao, $questao, $ordem_alternativas); }
TB

 
  1. <?php
  2. //sorteia as alternativas da questão
  3. private function sorteiaAlternativas($numeroprova, $numeroquestao, $questao){
  4. $rep = new TRepository('QuestoesAlternativas');
  5. $criterio = new TCriteria;
  6. $criterio->add(new TFilter('questoes_id','=',$questao->id));
  7. $objetos = $rep->load($criterio);;
  8. $qtd_alternativas = count($objetos);
  9. $ordem_alternativas = array();
  10. $i=0;
  11. while($i<$qtd_alternativas)
  12. {
  13. $id_alt_aux = rand(0,$qtd_alternativas-1);
  14. if(!in_array($objetos[$id_alt_aux]->id,$ordem_alternativas))
  15. {
  16. array_push($ordem_alternativas, $objetos[$id_alt_aux]->id);
  17. $i++;
  18. }
  19. }
  20. $this->gravaProvaGerada($numeroprova, $numeroquestao, $questao, $ordem_alternativas);
  21. }
  22. ?>
SS

Show, já me deu uma luz quanto ao random. Mas e quanto a exibição das questões em tela, como você está fazendo? Cada questão gera um form como suas possíveis respostas e um save em cada form, ou uma lista de questões com save no final da lista?