Lançado Adianti Framework 7.6!
Clique aqui para saber mais
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?

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 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?