Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marceloadeo

Sorteio Aleatório

Recommended Posts

Olá Pessoal,

 

 

Estou precisando de uma ajuda para finalizar um cadastro que estou desenvolvendo em um site que estou a construir. O problema é o seguinte:

 

1)Tenho uma Base de Dados MDB (Access 2003), na qual tenho 4 Tabelas por nomes: PRG1, PRG2, PRG3 e PRG4.

 

2)Nestas tabelas, respectivamente tenho 4 campos: ID, PERGUNTA, RESPOSTA, JAUSADA.

 

3)Cada uma destas tabelas tem perguntas e respostas de acordo com um determinado nível, que podem ser até 4 níveis distintos, sendo eles: G1, G2, G3 e G4.

 

4)Quando o usuário do site está preenchendo o seu cadastro, lhe é feito uma pergunta no formulário, questionando-lhe a que GRAU ele pertence e a sua resposta (de acordo com o item 3), indicará de qual das 4 tabelas(de acordo com o item 1) as perguntas seram selecionadas para comprovar o nível do usuário.

 

5)Apareceram 3 perguntas aleatórias num formulário para este usuário, com os respectivos campos INPUT para respondê-las, e ao confirmar as respostas(botão ENVIAR), estas seram correlacionadas com as respostas existentes nos campos da tabelas, se as respostas das 3 perguntas estiverem corretas, o mesmo será confirmado para o respectivo nível a que ele diz pertencer, do contrário, lhe seram sorteadas 3 novas perguntas, sendo que as anteriormente escolhidas não podem aparecer novamente, para isso existe o campo JAUSADA(do tipo sim/não) nas tabelas, para evitar esse problema, pois as perguntas ao serem selecionadas ao acaso, estas por sua vez recebem uma marcação no campo JAUSADA, para que seja deixadas de fora do novo sorteio.

 

 

Será que alguém poderia me ajudar nesta tarefa, pois já olhei em vários sites, fóruns, exemplos, mas nenhum deles me deu uma solução adequada.

 

Conta com a certeza de ser ajudado pelos colegas e amigos, pois já estou a mais de 1 mês tentando, e nada de sucesso até agora.

 

 

 

 

Atenciosamente,

 

 

 

____________________________________________

Marcelo Arruda.

____________________________________________

http://marcelo.acaciabalsense.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marceloaldeo, vai ser meio complicado fazer o que você quer usando apenas um arquivo ASP. O usuário não poderia escolher o grau primeiro, em um formulário e depois ir para as página onde as perguntas seriam feitas?Está parecendo que você quer utlizar aplicação mais do lado do cliente, e não do servidor. Nesse caso, uma combinação ASP + JavaScript seria mais adequada, não acha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Klonder,

 

 

Esqueci de dizer que este cadastro está dividido em 5 formulários distintos (5 partes), sendo assim a pergunta a que grau o usuário pertence é feito no formulário 1 e salvo em uma session que é usado para definir as perguntas.

 

Mas tudo bem com referencia ao meu problema, pois já solucionei a questão de sorteiar as perguntas de acordo com o nivel do usuário, mas agora surgiu outro problema.

 

Segue o me novo problema a seguir:

 

1)Como filtrar o meu sorteio das perguntas para que entre as 3 perguntas escolhidas dentre as 10 disponíveis por exemplo, não ocorra nenhuma repetição de perguntas.

 

Por exemplo: Não gostaria que a pergunta 1 ou qualquer outra aparecesse mais de 1 vez, ou seja, 2 vezes ou mais por exemplo.

 

2)Segue abaixo um código que estou usando para atualizar uma informação num campo de uma das tabelas, mas não sei o que está errado com o mesmo, pois não atualiza o campo que desejo, deem uma olhada e me retornem uma dica.

 

<%

If ACTION = "SaveMac" Then

 

If confresposta1=Session("resposta1") then

 

If confresposta2=Session("resposta2") then

 

If confresposta3=Session("resposta3") then

 

' criando a conexão

localbd = "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("/templo/cadgeral/cadgeral.mdb")

Set cadgeralmdb = Server.CreateObject("ADODB.Connection")

cadgeralmdb.Open localbd

set usuario = Server.CreateObject("ADODB.Recordset")

usuario.Open "SELECT * from cadmac where respcpf='"& Session("respcpf") &"'", cadgeralmdb

if usuario.EOF then

cadgeralmdb.execute "UPDATE cadmac SET sitcadmac=True WHERE (respcpf='" & Session("respcpf") & "') and (gls='" & Session("graumac") & "')" ' DEVE SER AQUI O PROBLEMA, MAS NÃO SEI AO CERTO

Else

cadgeralmdb.Close

Set cadgeralmdb = Nothing

Set usuario = Nothing

response.write "<script>history.back(1);alert('Ocorreu algum problema na validação de suas informações, por favor entrar em contato com o PostMaster para solucionar tal problema.')</script>"

End If

' Response.Write ("<br>")

%>

<script language="javascript">

<!--

window.alert ("É para ter dado certo, confira Ok!");

//-->

</script>

<%

'Server.Transfer("finalcadgeral.asp")

 

Else

%>

<script language="javascript">

<!--

window.alert ("As respostas das perguntas possivelmente estão erradas, tente novamente!");

window.history.go(-1);

//-->

</script>

<%

ACTION = ""

Server.Transfer("sorteioaleat" & Session("graumac") & ".asp")

' fecha a conexão

cadgeralmdb.Close

Set cadgeralmdb = Nothing

Set usuario = Nothing

End If

Else

%>

<script language="javascript">

<!--

window.alert ("As respostas das perguntas possivelmente estão erradas, tente novamente!");

window.history.go(-1);

//-->

</script>

<%

ACTION = ""

Server.Transfer("sorteioaleat" & Session("graumac") & ".asp")

' fecha a conexão

cadgeralmdb.Close

Set cadgeralmdb = Nothing

Set usuario = Nothing

End If

Else

%>

<script language="javascript">

<!--

window.alert ("As respostas das perguntas possivelmente estão erradas, tente novamente!");

window.history.go(-1);

//-->

</script>

<%

ACTION = ""

Server.Transfer("sorteioaleat" & Session("graumac") & ".asp")

' fecha a conexão

cadgeralmdb.Close

Set cadgeralmdb = Nothing

Set usuario = Nothing

End If

End If

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá marcelo

eu jah tive o mesmo problema q você e depois de kebrar a cabeça fiz um codigozinho

de casa eu posso lhe enviar

 

mas a idéia é as seguinte:

 

- Jogue todos os seus dados num Array

- Daí, faça o sorteio normalmente.... o array q escolheu, você pega o valor e salva numa variavel qq

- Para essa mesma posição do array, você agora coloca um valor diferente, por exemplo a string 0000

- Refaça o sorteio e verifique se o q foi escolhido nao foi o 0000.... se eh, continue no loop

 

algo assim

 

Array(0) = "Pergunta 1"

Array(1) = "Pergunta 1"

Array(2) = "Pergunta 1"

...

Array(40) = "Pergunta 40"

 

Digamos q você queira pegar 3 perguntas:

 

i = 0While not i = 3Randomizek = 40*Rnd()k = Cint(k)If Array(k) <> "0000"	  response.write(Array(k) & "<br>")	  Array(k) = "0000"	  i = i +1End IfWend

bom a idéia é essa

tem outra forma de fazer, mas eh mais complicado...

 

de qq forma, adapta ao seu problema!!!

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.