Ir para conteúdo
Fórum Script Brasil
  • 0

Lista De Exercicios Aleatoria


Nelma

Pergunta

Bom dia...

Estou tentando criar uma lista de exercicios com pergunta e 5 alternativas (para cada pergunta).

Tem uma tabela pergunta (cod_pergunta, pergunta, cod_disciplina)

Tem uma tabela resposta (cod_resposta, resposta, cod_pergunta, correto) - campo correto (S ou N)

Eu tentei criar uma lista randomica desses exercicios, assim, cada vez que a pessoa acessar a página, é apresentado um cjto de exercicios.

$query = mysql_query("SELECT cod_pergunta FROM pergunta ORDER BY RAN( )");
    while($pergunta = mysql_fetch_row($query)){
        echo $pergunta[0];

É apresentado todas as perguntas cadastradas, então eu tentei usar a variável que armazena esse array para buscar na tabela resposta todas as respostas correspondentes a cada pergunta, mas não deu certo

Eu pensei em usar a função rand(), mas não consegui, pois, quais seria os valores MIN e MAX, que eu usaria como critério?

Desde de já agradeço pela atenção...

Att

Nelma

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

A lógica tá errada, veja..

$query = mysql_query("SELECT * FROM pergunta ORDER BY RAN( )");
    while($pergunta = mysql_fetch_row($query)){
        $perg = $pergunta[0];
        $cod_per = $pergunta['cod_pergunta'];
                //Aqui você faz outra query/laço pra pegar as respostas pra pergunta...
                $resposta = mysql_query("SELECT * FROM resposta WHERE cod_pergunta = '$cod_per'");
                while ($resp = mysql_fetch_array($resposta)){
                //Aqui vai estar o laço das respostas...

                }// Fecha while ($resp = mysql_fetch_array($resposta)){
    }//Fecha while($pergunta = mysql_fetch_row($query)){

É por ai o caminho...

Ps.: Você identa o código? Difícil de ver isso em PHP :)

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde ESerra...

Muito obrigada pela ajuda...

Agora esta aparecendo cada pergunta com suas 5 alternativas.

$query = mysql_query("SELECT cod_pergunta FROM pergunta ORDER BY RAND( ) LIMIT 5");
        while($pergunta = mysql_fetch_row($query))
        {
            $qry = mysql_query("SELECT DISTINCT(pergunta) FROM pergunta WHERE cod_pergunta = '$pergunta[0]'");
            while($perg = mysql_fetch_row($qry))
            {      
             //Aqui eu chamei a variável c/ o valor da pergunta
                                                }
             $resposta = mysql_query("SELECT cod_resposta,resposta FROM resposta WHERE cod_pergunta = '$pergunta[0]'");
             while($resp = mysql_fetch_row($resposta))
             {
              //Aqui eu chamo a variável c/ o valor das respostas para cada pergunta                 
             }
             
         }

Eu acrescentei um limit de 5 perguntas por vez, e fiz mais um select distinct para cada pergunta...valeu mesmo pela ajuda!!

E sobre identar...rsrs eu tenho mesmo essa mania..rsrs Facilita minha visualização do código!!

Att

Nelma

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde...

Tem como, usando esse script da resposta de cima, colocar um input type=radio, para cada resposta?

E como eu poderia separar os radio por grupo de pergunta, para que eu possa responder por pergunta, pois do jeito que esta, o radio é o mesmo para todas as respostas.

Eu ainda não acertei na lógica...

Desde de já agradeço pela ajuda

Att

Nelma

Eu refiz novamente o código e agora esta assim:

<?php
      $query = mysql_query("SELECT cod_pergunta FROM pergunta WHERE cod_disc = '1' ORDER BY RAND( ) LIMIT 5");
        while($pergunta = mysql_fetch_row($query))
        {
                $qry = mysql_query("select pergunta from pergunta where cod_pergunta = '$pergunta[0]'");
                $perg1 = mysql_fetch_row($qry);
                  print "<tr>";
                  print "<td height=\"27\" colspan=\"2\" valign=\"top\">$perg1[0]</td>";
                  print "</tr>";
                 $resposta = mysql_query("SELECT cod_resposta,resposta,cod_pergunta FROM resposta WHERE cod_pergunta = '$pergunta[0]'");
                while($resp = mysql_fetch_row($resposta))
                {
                    print "<table width=\"200\">";
                    print "<tr>";
                    print "<td><label>";
                    print "<input type=\"radio\" name=\"RadioGroup1\" value=\"radio\" />$resp[0] - $resp[2]</label></td>";
                    print "</tr>";
                    print "</table>";
                }                
        }
                  
    ?>

Esta selecionando 5 perguntas com suas respectivas respostas, mas o problema é que o name radio é o mesmo para todas.

Att

Nelma

Link para o comentário
Compartilhar em outros sites

  • 0

Faça assim....

$contador = 1;
while($pergunta = mysql_fetch_row($query))
        {
                $qry = mysql_query("select pergunta from pergunta where cod_pergunta = '$pergunta[0]'");
                $perg1 = mysql_fetch_row($qry);
                  print "<tr>";
                  print "<td height=\"27\" colspan=\"2\" valign=\"top\">$perg1[0]</td>";
                  print "</tr>";
                 $resposta = mysql_query("SELECT cod_resposta,resposta,cod_pergunta FROM resposta WHERE cod_pergunta = '$pergunta[0]'");
                while($resp = mysql_fetch_row($resposta))
                {
                    print "<table width=\"200\">";
                    print "<tr>";
                    print "<td><label>";
                    print "<input type=\"radio\" name=\"RadioGroup".$contador."\" value=\"radio\" />$resp[0] - $resp[2]</label></td>";
                    print "</tr>";
                    print "</table>";
                }                
        $contador++;
        }
                  
    ?>

Link para o comentário
Compartilhar em outros sites

  • 0

Ok...valeu pela ajuda ESerra

Agora esta agrupando.

Mas como eu faço para enviar os dados para o form name=corrigir ?

Eu tentei declarar o valor assim:

$radio = $_POST["RadioGroup".$contador];

Mas não funciona.

Mais uma vez, agradeço pela ajuda

Att

Nelma

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia...

Eu tentei fazer, mas ainda não deu certo

Eu criei o array do jeto que você falou, dentro do contador.

$valor = "RadioGroup".$contador;
E na pagina que recebe os valores eu declarei da mesma maneira tb
$radio = $_POST["$valor"];
Mas não passa os valores selecionados. Eu acrescentei o numero das respostas tb e ficou assim:
$valor = "RadioGroup".$contador.$resp[0]

Ele mostra o grupo de radio e o cod da resposta, para tentar identificar na pagina corrigir.php qual grupo de pergunta e qual resposta foi selecionada, mas ainda não deu certo.

Mas página corrigir não aparece nada.

Obrigada pela atenção

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,1k
×
×
  • Criar Novo...