LenS 0 Denunciar post Postado Fevereiro 16, 2011 Olá pessoal, este é meu primeiro post no forum, então me desculpem e me avisem se cometer algum erro. Sou estagiario em uma empresa de desenvolvimento de sites e preciso criar um questionario online em php. Já criei uma boa parte do código, agora só me falta fazer uma correção no formulario e exibir o resultado para o usuario. Mas sou iniciante em php, acho q se resolve isso com array, mas não consigo pensar como, se alguem puder me ajudar. o código que exibe as 3 questões do meu banco sql é esse: prova.php <?include ("conectar.php"); ?> <? $prova = $_GET['prova']; $consulta = "SELECT * FROM perguntas WHERE idprova = $prova"; $result = mysql_query ($consulta,$conexao) or die ("Não foi possivel consultar o banco"); echo " <form method='post' action='resultado.php'> "; $i = 1; while ($linha = mysql_fetch_row($result)) { echo " <font face='Verdana' color='gray' size='3'> $i) $linha[2] </font> <font face='Verdana' size='2'> <p> a) <input type='radio' name='respostas$i' value='a'> $linha[3] </p> <p> B) <input type='radio' name='respostas$i' value='b'> $linha[4] </p> <p> c) <input type='radio' name='respostas$i' value='c'> $linha[5] </p> <p> d) <input type='radio' name='respostas$i' value='d'> $linha[6] </p> <p> e) <input type='radio' name='respostas$i' value='e'> $linha[7] </p> <br> </font> "; $i++; } echo " <input type='hidden' name='prova' value='$prova'> <input type='submit' value='Enviar Respostas'> </form> "; ?> Vlw galera! :) Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Fevereiro 16, 2011 primeiramente troque todas <? , pra <?php , e você esta usando mysql_fetch_row , você fecha todas as linhas , não seria mysql_fetch_array ?? Compartilhar este post Link para o post Compartilhar em outros sites
LenS 0 Denunciar post Postado Fevereiro 16, 2011 Valeu amigo pelas correções. ^_^ Mas eu gostaria de saber como eu faria para percorrer essas questões, corrigir as respostas e exibir quantas estão corretas e quantas estão erradas para o usuario. No banco MySQL eu coloquei uma tabela onde na hora q o administrador cria a prova ele escolhe um resposta correta. a,b,c,d ou e... queria saber se tem como percorrer essas questões "colher" as respostas do usuario e consultar no banco para ver quantas estão corretas. Mas valeu pelas correções nao sabia q tinha diferença entre o mysql_fetch_row com o Mysql_fetch array.... :lol: Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Fevereiro 16, 2011 você quer fazer o gabarito ? tipo , as respostas ja estão em uma tabela .. nessa tabela você grava alguma referencia , tipo ID da prova ? Compartilhar este post Link para o post Compartilhar em outros sites
LenS 0 Denunciar post Postado Fevereiro 16, 2011 É mais ou menos isso ae cara, na minha tabela tenho o idpergunta, idprova, pergunta(que armazena o texto da pergunta), q1,q2,q3,q4,q5(que armazena cada alternativa da pergunta), e correta(que armazena a alternativa correta... a,b,c,d ou e...) Ai no codigo q eu postei ele só ta consultando o banco e mostrando pra mim na tela as perguntas e as alternativas em radio buttons para o usuario escolher a resposta corretas. Ai eu usaria essa minha tabela pra comparar as respostas dadas pelo usuario e as do banco e simplismente contar e exibia a quantidade de certas e erradas, nem precisa exibir um gabarito. só as quantidades. Só que na hora de eu pegar essas variaveis das respostas em outra página eu nao sei como recuperar essas respostas dada pelo usuario. Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Fevereiro 16, 2011 bem , você pode criar um formulario de GET , quando o cara enviar , vai mandar todas as respostas , e botar um if .. se a variavel 1 tiver valor , 2 tiver valor .. etc , ele faz uma query no banco 1 pra cada resposta .. e exibe as que acertou .. +/- assim a logica entendeu ? Compartilhar este post Link para o post Compartilhar em outros sites
LenS 0 Denunciar post Postado Fevereiro 16, 2011 Não entendi muito bem não, hehehehe. :huh: Na verdade eu tô com dificuldade de saber como eu vou pegar as respostas do usuario, pq se você reparar nos names que coloquei nos radio button, eles no final são incrementados por uma variavel, foi uma solução bem porca q eu arranjei, kkkkk, pq sem essa variavel incrementando eu não conseguia escolher um radio para cada questão, quando eu marcava um de uma questão da pergunta 1 por exemplo, desmarcava da outra questão da pergunta 2. while ($linha = mysql_fetch_array($result)) { echo " <font face='Verdana' color='gray' size='3'> $i) $linha[pergunta] </font> <font face='Verdana' size='2'> <p> a) <input type='radio' name='respostas$i' value='a'> $linha[q1] </p> <p> B) <input type='radio' name='respostas$i' value='b'> $linha[q2] </p> <p> c) <input type='radio' name='respostas$i' value='c'> $linha[q3] </p> <p> d) <input type='radio' name='respostas$i' value='d'> $linha[q4] </p> <p> e) <input type='radio' name='respostas$i' value='e'> $linha[q5] </p> <br /> </font> "; $i++; } echo " <input type='hidden' name='prova' value='$prova'> <input type='submit' value='Enviar Respostas'> </form> "; Nossa até eu fiquei enrolado com a minha explicação,hhaahahah, Tô tão confuso q nem explica consigo. :( cada vez que o loop passa o name fica ex: respostas1, depois respostas2, etc.. e no meu banco tenho 3 perguntas, mas quando o administrador criar a provinha não vai ter uma quantidade fixa de questões. Compartilhar este post Link para o post Compartilhar em outros sites
LenS 0 Denunciar post Postado Fevereiro 16, 2011 Sendo mais especifico na minha dúvida: cada vez que o loop é executado a name dos radio buttons são incrementadas: while ($linha = mysql_fetch_array($result)) { echo " <font face='Verdana' color='gray' size='3'> $i) $linha[2] </font> <font face='Verdana' size='2'> <p> a) <input type='radio' name='respostas$i' value='a'> $linha[3] </p> <p> B) <input type='radio' name='respostas$i' value='b'> $linha[4] </p> <p> c) <input type='radio' name='respostas$i' value='c'> $linha[5] </p> <p> d) <input type='radio' name='respostas$i' value='d'> $linha[6] </p> <p> e) <input type='radio' name='respostas$i' value='e'> $linha[7] </p> <br> </font> "; $i++; } Alguem pode fazer algum rascunho pelo menos de código para armazenar o value selecionado de cada vez que o loop for executado? pois cada vez que ele é executado o name que no caso é respostas$i passa a ser, respostas1, respostas2, respostas3... etc. acredito que seja travez de arrays, mas nao sei como fazer. Se alguem puder me ajudar quando terminar posto um tutorial de como criar um questionario de prova online e gerenciavel. Vlw! ;) Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Fevereiro 16, 2011 loop for , .. for($i = 0; $i <= mysql_num_rows($sua_sql); $i ++){ echo 'resposta'.$i; } creio que seje algo assim, tenta implementar ao script e fale o retorno Att Abraços Compartilhar este post Link para o post Compartilhar em outros sites