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?

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto 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?