LenS 0 Denunciar post Postado Fevereiro 22, 2011 E ae Galera! Estou com uma dúvida cruel. como incrementar uma variavel recebida por Post? Explicando melhor, eu tenho um formulario que exibe um questionario com um numero indeterminado de questões, depende de quantas questões eu postei no meu banco sql. Fiz um formulario que exibe essas perguntas e respostas incrementando-as. ex: <?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; $quantidade = mysql_num_rows($result); if ($quantidade > 0) { 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++; } echo " <input type='hidden' name='prova' value='$prova'> <input type='submit' value='Enviar Respostas'> </form> "; } else { echo "Não existe Questões para esta prova"; } ?> Na página resultado.php, gostaria de exibir a quantidade de perguntas que tem no banco e o numero de respostas corretas respondidas pelo usuario, mas meu problema é que eu não sei como recuperar essa variavel pelo metodo post do formulario. Eu fiz assim, tentei inventar neh :P $consulta = "SELECT * FROM perguntas"; $result = mysql_query ($consulta,$conexao); $quantidade = mysql_num_rows ($result); for ($i = 0 ; $i < $quantidade; $i++) { $respostas.$i = $_POST['respostas'.$i]; } Que coisa doida neh? Bom minha duvida é se existe algo parecido com isso? Qual a sintaxe para realizar essa minha intenção.... $respostas.$i = $_POST['respostas'.$i]; :huh: ou seja, incrementar esse post vindo do formularia que já esta sendo incrementado. Por favor me ajudem.... :D Compartilhar este post Link para o post Compartilhar em outros sites
leobrrj 0 Denunciar post Postado Fevereiro 22, 2011 cara se liga.. recupera como array e pronto.. esquece esse incremento. dá o nome do option de "respostas[]" Muda o nome do option para respostas[] ele vai virar um array na próxima página. Compartilhar este post Link para o post Compartilhar em outros sites
LenS 0 Denunciar post Postado Fevereiro 22, 2011 mudar o nome do option ou do name dos meus radio buttons? eu incremento o form pq são 3 perguntas registradas no meu banco, e se eu não incrementar, só da pra selecionar 1 radio button na página,o certo é selecionar um radio por pergunta, mas minha pagina mostra varias perguntas, no caso 3.cada pergunta tem 5 respostas. Acho q eh melhor usar array, mas não sei usa direito. ai tentei dakele jeito. Você pode me auxiliar em como eu posso muda esse meu codigo pra usar Array? Vlww! Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Fevereiro 22, 2011 Tenta assim: $respostas.$i = $_POST["respostas".$i.""]; Se não der certo, faça assim, para debugar e ver o resultado que está saindo: $respostas.$i = $_POST["respostas".$i.""]; echo $respostas.$." - ".$_POST["respostas".$i.""]; Compartilhar este post Link para o post Compartilhar em outros sites
LenS 0 Denunciar post Postado Fevereiro 22, 2011 André, eu coloquei assim para testar: <?php for($i = 1; $i == 3; $i ++) { $respostas.$i = $_POST["respostas".$i.""]; echo $respostas.$i." - ".$_POST["respostas".$i.""]; } ?> Não deu erro nenhum, mas a tela fico em branco. hehehe. Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Fevereiro 22, 2011 você está comparando $i com 3 e está colocando um espaço no incremento for($i = 1; $i == 3; $i ++) mude para for($i = 1; $i <= 3; $i++) :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites
LenS 0 Denunciar post Postado Fevereiro 22, 2011 Caramba!! kkkkk Fiz essa alteração ae, mas acho q ele entro num loop infinito. fica repetindo infinitamente na tela os erros: Warning: main(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Sao_Paulo' for '-3.0/no DST' instead in D:\Webserver\Apache2.2\htdocs\questionario\resultado.php on line 13 Notice: Undefined variable: respostas in D:\Webserver\Apache2.2\htdocs\questionario\resultado.php on line 13 Warning: main(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Sao_Paulo' for '-3.0/no DST' instead in D:\Webserver\Apache2.2\htdocs\questionario\resultado.php on line 14 Notice: Undefined variable: respostas in D:\Webserver\Apache2.2\htdocs\questionario\resultado.php on line 14 Warning: main(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Sao_Paulo' for '-3.0/no DST' instead in D:\Webserver\Apache2.2\htdocs\questionario\resultado.php on line 14 Mas vlw, só ta faltando essa correção pra mim termina meu sisteminha de prova online. Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Fevereiro 22, 2011 Kra ae já é a logica do seu sys :thumbsup: Tenta assim: if($_POST) { for($i = 1; $i <= 3; $i++){ $respostas.$i = $_POST["respostas".$i.""]; echo $respostas.$i." - ".$_POST["respostas".$i.""]; } } E as linhas que aponta os erros (14/13) é antes ou depois disso ? Compartilhar este post Link para o post Compartilhar em outros sites
LenS 0 Denunciar post Postado Fevereiro 22, 2011 deu o mesmo erro. mas acho q o problema ta na sintaxe de concatenação mesmo: eu fiz esse teste mais simples e mesmo assim da erro: :( for($i = 1; $i <= 3; $i++) { $respostas.$i = "teste"; } echo $respostas0; echo $respostas1; echo $respostas2; echo $respostas3; Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Fevereiro 22, 2011 Tenta concatenar assim for($i = 1; $i <= 3; $i++){ $respostas.$i = $_POST["respostas".$i.""]; echo ${"respostas$i"}; echo $_POST["respostas".$i.""]; } Compartilhar este post Link para o post Compartilhar em outros sites
Periscuelo 20 Denunciar post Postado Fevereiro 22, 2011 Tente assim amigo LenS for($i = 0; $i <= 3; $i++) { $respostas = 'respostas'.$i; $$respostas = 'teste<br />'; } echo $respostas0; echo $respostas1; echo $respostas2; echo $respostas3; Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
LenS 0 Denunciar post Postado Fevereiro 23, 2011 Valew galera!! deu certo! :clap: mas eu juntei o código de vcs dois e fiz o resto que precisava! ficou assim: <?php include ("conectar.php"); $iddaprova = $_POST['prova']; $consulta = "SELECT * FROM perguntas WHERE idprova = '$iddaprova' "; $result = mysql_query ($consulta,$conexao); $quantidade = mysql_num_rows($result); $corretas = 0; for($i = 1; $i <= $quantidade; $i++) { $respostas = $_POST["respostas".$i.""]; $linha = mysql_fetch_row($result); if ($respostas == $linha[8]) { $corretas++; } } echo "Você acertou $corretas de $quantidade questões"; ?> Espero que este Post ajude mais amigos! precisando de alguma ajudinha é só falar! Obrigado Pessoal! :joia: Compartilhar este post Link para o post Compartilhar em outros sites