Ir para conteúdo

POWERED BY:

Arquivado

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

programadorzenho

Randomize sem Repetição

Recommended Posts

Estou tendo dificuldades num Script Aqui e Gostaria da Ajudinha de vocês

 

Bom Tenho um db chamado webquiz e uma tabela chamada questoes!

 

Na Tabela Tenho 7 campos cod, pergunta, resp1, resp2, resp3, certa, tipo.

 

Gostaria q continuasse com o Randomize Porem Sem Repetiçoes das Questões

Desde ja agradeço..Segue Abaixo o Script q Estou Usando Para Aprender, baixei na internet não é d autoria minha

 

 

 

<%Response.Buffer = TrueCall AbreDB()%><html><head>	<title>W e b Q u i z  - 1.0</title></head><script language="JavaScript">function Redir(){var n = document.quiz.n.value;window.location.href = '<%=Request.ServerVariables("SCRIPT_NAME")%>?nivel=' + n;}</script><body vlink="#f5f5f5" alink="#f5f5f5" link="#f5f5f5"><link rel="stylesheet" type="text/css" href="webquiz.css"><%dim con, rsdim resposta, nivelresposta = request.form("resposta")nivel	 = request.QueryString("nivel")if nivel = "" then nivel = "A"Session("numero") = Session("numero") + 1if resposta = empty then	Call Iniciaelse	Call Verificaend ifSub AbreDB	ConnString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("webquiz.mdb")	set Con = Server.CreateObject("ADODB.connection")	Con.Open ConnString	set rs = Server.CreateObject("ADODB.Recordset")End SubSub Perguntaselect case nivel case "A" : SQL = "SELECT Count(cod) AS total FROM questoes WHERE tipo='A'"end selectSet rs = Con.execute(SQL)xtotal = rs("total")select case nivel	case "A" : SQL = "SELECT * FROM questoes WHERE tipo='A'"end selectSet rs = con.execute(SQL)randomize timerxrnd	= Int((xtotal * Rnd) + 0)rs.Move xrndSession("certa") = rs("certa")End SubSub FechaDBcon.closeset rs  = nothingset con = nothingEnd SubSub MostraPergunta%><form id="quiz" name="quiz" action="<%=Request.ServerVariables("SCRIPT_NAME")%>?nivel=<%=nivel%>" method="post"><input type="hidden" name="numero" value="<%=Session("numero")%>"><table bgcolor="#0080C0" width="60%" align="center" cellspacing="1" cellpadding="0"><tr bgcolor="f5f5f5"><td align="center" colspan="2"><p style="margin-right: 5; margin-left: 5; margin-top: 5; margin-bottom: 5"><%=rs("pergunta")%></p></td></tr><tr><td><table bgcolor="#ffffff" width="100%" cellspacing="0"><tr bgcolor="ffffff"><td width="5%"></td><td align="right" width="95%"><p style="margin-right: 5; margin-top: 5;"><select id="n" onchange="javascript:Redir()" class="campo" name="n" size="1"><option <%if nivel="A" then Response.Write "selected"%> value="A">Nível A</select></td></tr><tr bgcolor="ffffff"><td><input type="radio" name="resposta" value="1"></td><td> <%=rs("resp1")%></td></tr><tr bgcolor="ffffff"><td><input type="radio" name="resposta" value="2"></td><td> <%=rs("resp2")%></td></tr><tr bgcolor="ffffff"><td><input type="radio" name="resposta" value="3"> </td><td> <%=rs("resp3")%></td></tr><tr bgcolor="ffffff"><td valign="bottom" colspan="2" align="center"> <input class="botao" type="submit" name="responder" value="Responder"><br><table width="100%" cellpadding="0" cellspacing="0"><tr><td height="20" align="left" width="50%"> Seus Pontos: <b><%=session("pontos")%></b></td><td align="right" width="50%"> Desenvolvido por <b>Surfaum</b>. </td><tr></tr></table></td></tr></table></td></tr></table></form><%End SubSub Verifica	if Session("numero") = request.form("numero") +1 then		if session("certa") = request("resposta") then			select case nivel				case "A" : session("pontos") = session("pontos") + 5				case else: session("pontos") = session("pontos") + 5			end select			Call Pergunta			Call MostraPergunta		else			Call Inicia		end if	else		%><script>alert("Espertinho!! Não Pode Atualizar")</script><%		Call Inicia	end ifEnd SubSub Inicia	Session("numero") = 0	Session("pontos") = 0	Call Pergunta	Call MostraPerguntaEnd SubCall FechaDB%>
Vlw Obrigado Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou tendo dificuldades num Script Aqui e Gostaria da Ajudinha de vocês

 

Bom Tenho um db chamado webquiz e uma tabela chamada questoes!

 

Na Tabela Tenho 7 campos cod, pergunta, resp1, resp2, resp3, certa, tipo.

 

Gostaria q continuasse com o Randomize Porem Sem Repetiçoes das Questões

Desde ja agradeço..Segue Abaixo o Script q Estou Usando Para Aprender, baixei na internet não é d autoria minha

 

 

 

<%Response.Buffer = TrueCall AbreDB()%><html><head>	<title>W e b Q u i z  - 1.0</title></head><script language="JavaScript">function Redir(){var n = document.quiz.n.value;window.location.href = '<%=Request.ServerVariables("SCRIPT_NAME")%>?nivel=' + n;}</script><body vlink="#f5f5f5" alink="#f5f5f5" link="#f5f5f5"><link rel="stylesheet" type="text/css" href="webquiz.css"><%dim con, rsdim resposta, nivelresposta = request.form("resposta")nivel	 = request.QueryString("nivel")if nivel = "" then nivel = "A"Session("numero") = Session("numero") + 1if resposta = empty then	Call Iniciaelse	Call Verificaend ifSub AbreDB	ConnString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("webquiz.mdb")	set Con = Server.CreateObject("ADODB.connection")	Con.Open ConnString	set rs = Server.CreateObject("ADODB.Recordset")End SubSub Perguntaselect case nivel case "A" : SQL = "SELECT Count(cod) AS total FROM questoes WHERE tipo='A'"end selectSet rs = Con.execute(SQL)xtotal = rs("total")select case nivel	case "A" : SQL = "SELECT * FROM questoes WHERE tipo='A'"end selectSet rs = con.execute(SQL)randomize timerxrnd	= Int((xtotal * Rnd) + 0)rs.Move xrndSession("certa") = rs("certa")End SubSub FechaDBcon.closeset rs  = nothingset con = nothingEnd SubSub MostraPergunta%><form id="quiz" name="quiz" action="<%=Request.ServerVariables("SCRIPT_NAME")%>?nivel=<%=nivel%>" method="post"><input type="hidden" name="numero" value="<%=Session("numero")%>"><table bgcolor="#0080C0" width="60%" align="center" cellspacing="1" cellpadding="0"><tr bgcolor="f5f5f5"><td align="center" colspan="2"><p style="margin-right: 5; margin-left: 5; margin-top: 5; margin-bottom: 5"><%=rs("pergunta")%></p></td></tr><tr><td><table bgcolor="#ffffff" width="100%" cellspacing="0"><tr bgcolor="ffffff"><td width="5%"></td><td align="right" width="95%"><p style="margin-right: 5; margin-top: 5;"><select id="n" onchange="javascript:Redir()" class="campo" name="n" size="1"><option <%if nivel="A" then Response.Write "selected"%> value="A">Nível A</select></td></tr><tr bgcolor="ffffff"><td><input type="radio" name="resposta" value="1"></td><td> <%=rs("resp1")%></td></tr><tr bgcolor="ffffff"><td><input type="radio" name="resposta" value="2"></td><td> <%=rs("resp2")%></td></tr><tr bgcolor="ffffff"><td><input type="radio" name="resposta" value="3"> </td><td> <%=rs("resp3")%></td></tr><tr bgcolor="ffffff"><td valign="bottom" colspan="2" align="center"> <input class="botao" type="submit" name="responder" value="Responder"><br><table width="100%" cellpadding="0" cellspacing="0"><tr><td height="20" align="left" width="50%"> Seus Pontos: <b><%=session("pontos")%></b></td><td align="right" width="50%"> Desenvolvido por <b>Surfaum</b>. </td><tr></tr></table></td></tr></table></td></tr></table></form><%End SubSub Verifica	if Session("numero") = request.form("numero") +1 then		if session("certa") = request("resposta") then			select case nivel				case "A" : session("pontos") = session("pontos") + 5				case else: session("pontos") = session("pontos") + 5			end select			Call Pergunta			Call MostraPergunta		else			Call Inicia		end if	else		%><script>alert("Espertinho!! Não Pode Atualizar")</script><%		Call Inicia	end ifEnd SubSub Inicia	Session("numero") = 0	Session("pontos") = 0	Call Pergunta	Call MostraPerguntaEnd SubCall FechaDB%>
Vlw Obrigado Abraços
Boas,

 

Este SQl funciuona na perfeição em mysql.

 

SELECT * FROM tabela ORDER BY Rand() LIMIT 10

 

Ou seja, selecciona 10 registos randomicos sem nunca repetir.

 

Cumprimentos,

Rui Costa

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Estou tendo dificuldades num Script Aqui e Gostaria da Ajudinha de vocês

 

Bom Tenho um db chamado webquiz e uma tabela chamada questoes!

 

Na Tabela Tenho 7 campos cod, pergunta, resp1, resp2, resp3, certa, tipo.

 

Gostaria q continuasse com o Randomize Porem Sem Repetiçoes das Questões

Desde ja agradeço..Segue Abaixo o Script q Estou Usando Para Aprender, baixei na internet não é d autoria minha

 

 

 

<%Response.Buffer = TrueCall AbreDB()%><html><head>	<title>W e b Q u i z  - 1.0</title></head><script language="JavaScript">function Redir(){var n = document.quiz.n.value;window.location.href = '<%=Request.ServerVariables("SCRIPT_NAME")%>?nivel=' + n;}</script><body vlink="#f5f5f5" alink="#f5f5f5" link="#f5f5f5"><link rel="stylesheet" type="text/css" href="webquiz.css"><%dim con, rsdim resposta, nivelresposta = request.form("resposta")nivel	 = request.QueryString("nivel")if nivel = "" then nivel = "A"Session("numero") = Session("numero") + 1if resposta = empty then	Call Iniciaelse	Call Verificaend ifSub AbreDB	ConnString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("webquiz.mdb")	set Con = Server.CreateObject("ADODB.connection")	Con.Open ConnString	set rs = Server.CreateObject("ADODB.Recordset")End SubSub Perguntaselect case nivel case "A" : SQL = "SELECT Count(cod) AS total FROM questoes WHERE tipo='A'"end selectSet rs = Con.execute(SQL)xtotal = rs("total")select case nivel	case "A" : SQL = "SELECT * FROM questoes WHERE tipo='A'"end selectSet rs = con.execute(SQL)randomize timerxrnd	= Int((xtotal * Rnd) + 0)rs.Move xrndSession("certa") = rs("certa")End SubSub FechaDBcon.closeset rs  = nothingset con = nothingEnd SubSub MostraPergunta%><form id="quiz" name="quiz" action="<%=Request.ServerVariables("SCRIPT_NAME")%>?nivel=<%=nivel%>" method="post"><input type="hidden" name="numero" value="<%=Session("numero")%>"><table bgcolor="#0080C0" width="60%" align="center" cellspacing="1" cellpadding="0"><tr bgcolor="f5f5f5"><td align="center" colspan="2"><p style="margin-right: 5; margin-left: 5; margin-top: 5; margin-bottom: 5"><%=rs("pergunta")%></p></td></tr><tr><td><table bgcolor="#ffffff" width="100%" cellspacing="0"><tr bgcolor="ffffff"><td width="5%"></td><td align="right" width="95%"><p style="margin-right: 5; margin-top: 5;"><select id="n" onchange="javascript:Redir()" class="campo" name="n" size="1"><option <%if nivel="A" then Response.Write "selected"%> value="A">Nível A</select></td></tr><tr bgcolor="ffffff"><td><input type="radio" name="resposta" value="1"></td><td> <%=rs("resp1")%></td></tr><tr bgcolor="ffffff"><td><input type="radio" name="resposta" value="2"></td><td> <%=rs("resp2")%></td></tr><tr bgcolor="ffffff"><td><input type="radio" name="resposta" value="3"> </td><td> <%=rs("resp3")%></td></tr><tr bgcolor="ffffff"><td valign="bottom" colspan="2" align="center"> <input class="botao" type="submit" name="responder" value="Responder"><br><table width="100%" cellpadding="0" cellspacing="0"><tr><td height="20" align="left" width="50%"> Seus Pontos: <b><%=session("pontos")%></b></td><td align="right" width="50%"> Desenvolvido por <b>Surfaum</b>. </td><tr></tr></table></td></tr></table></td></tr></table></form><%End SubSub Verifica	if Session("numero") = request.form("numero") +1 then		if session("certa") = request("resposta") then			select case nivel				case "A" : session("pontos") = session("pontos") + 5				case else: session("pontos") = session("pontos") + 5			end select			Call Pergunta			Call MostraPergunta		else			Call Inicia		end if	else		%><script>alert("Espertinho!! Não Pode Atualizar")</script><%		Call Inicia	end ifEnd SubSub Inicia	Session("numero") = 0	Session("pontos") = 0	Call Pergunta	Call MostraPerguntaEnd SubCall FechaDB%>
Vlw Obrigado Abraços
Boas,

 

Este SQl funciuona na perfeição em mysql.

 

SELECT * FROM tabela ORDER BY Rand() LIMIT 10

 

Ou seja, selecciona 10 registos randomicos sem nunca repetir.

 

Cumprimentos,

Rui Costa

 

 

Olá Rui Costa Mto Obrigado Pela Ajuda

Porem estou aprendendo...e n to sabendo usar esta instrução No Meu programa de quiz!

 

Se possível me mostre onde devo trocar!

 

Mto Obrigado a Tdos Pela Paciencia

Compartilhar este post


Link para o post
Compartilhar em outros sites

select case nivel

case "A" : SQL = "SELECT Count(cod) AS total FROM questoes WHERE tipo='A'"

end select

 

Set rs = Con.execute(SQL)

xtotal = rs("total")

 

select case nivel

'Isto no caso de quereres sortear 10 registos, se for outro numero, troca.

case "A" : SQL = "SELECT * FROM questoes where tipo='A' ORDER BY Rand() LIMIT 10"

end select

 

 

mais alguma coisa? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

às ordens

 

Rui Costa

Compartilhar este post


Link para o post
Compartilhar em outros sites

select case nivel

case "A" : SQL = "SELECT Count(cod) AS total FROM questoes WHERE tipo='A'"

end select

 

Set rs = Con.execute(SQL)

xtotal = rs("total")

 

select case nivel

'Isto no caso de quereres sortear 10 registos, se for outro numero, troca.

case "A" : SQL = "SELECT * FROM questoes where tipo='A' ORDER BY Rand() LIMIT 10"

end select

 

 

mais alguma coisa? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

às ordens

 

Rui Costa

Olá Rui Costa Mais Uma Vez Obrigado Pela Força em Que você esta me dando.

 

Eu tinha colocado a instrução q você me falou a cima ae tinha dado um erro.

ae arrumei.

 

case "A" : SQL = "SELECT * FROM questoes where tipo='A' ORDER BY 'Rand() LIMIT 10'"

 

 

Até ae beleza.. Só q ele continua repetindo as questões"

 

Tipo eu queria q sorteasse as 10 questoes q eu tenho banco de dados... e assim q ele respondesse as 10

Saísse o Resultado PRa ele.

 

Desde Jah Agradeço a TDos

Compartilhar este post


Link para o post
Compartilhar em outros sites

só uma curiosidade ....eu não entendi nada do seu scrpit, mas a minha dúvida é:você tem alternativa 1, alternativa 2, alternativa 3, alternativa certa. Como você faz um Random nestes campos, para que a alternativa certa não seja sempre a ultima ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

só uma curiosidade ....eu não entendi nada do seu scrpit, mas a minha dúvida é:você tem alternativa 1, alternativa 2, alternativa 3, alternativa certa. Como você faz um Random nestes campos, para que a alternativa certa não seja sempre a ultima ?

Bom O Random É Só das Questões Não Da Alternativas.. intendeu?!GAlera continuo com o mesmo problema...Eu gostaria q Tivesse o Random das 10 questoes q tenho no BD...e assim q respondesse aparecesse o resultado!C possivel me judem...Obrigado Galera

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, seu banco é Access, dê uma busca por "random" no fórum que tem o código para isso no Access.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, seu banco é Access, dê uma busca por "random" no fórum que tem o código para isso no Access.

Pow Salgado

 

Procurei Procurei e n achei nda q EU consiga tirar proveito!

 

POR FAVOR é Urgente... Me Ajudem.. Procurei e tentei por mais um dia inteiro e nda novamente

http://forum.imasters.com.br/public/style_emoticons/default/cry.gif

 

Desde Jah Agradeço e Desculpe-me Estou aprendendo

Compartilhar este post


Link para o post
Compartilhar em outros sites

um exemplo com acess

 

http://forum.imasters.com.br/index.php?sho...130836&hl=%new%

 

use assim para pegar aleatorio

ORDER BY Rnd(Int(Now()*[iD])-Now()*[iD]);"

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o problema que voce está tendo???

Compartilhar este post


Link para o post
Compartilhar em outros sites

basicamente só usaria a ordenação aleatoria...

Compartilhar este post


Link para o post
Compartilhar em outros sites

basicamente só usaria a ordenação aleatoria...

Para ser mais específico...U q eu tiro...e Onde eu coloco u q?!Preciso entregar esse trabalho essa semana..q vai gerar um emprego para mim..Estou desempregado precisando mto disso..Mto obrigado pela paciencia Mariou e Fórum

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra deixar aleatoriovoce só poeORDER BY Rnd(Int(Now()*[iD])-Now()*[iD])no fim de sua sqlID é o nome do campo numerico

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.