Foros del Web » Programando para Internet » ASP Clásico »

Ramdom de preguntas

Estas en el tema de Ramdom de preguntas en el foro de ASP Clásico en Foros del Web. Buenas Tardes, por aqui de nuevo, espero esten bien, una consulta saven como se puede hacer un ramdom de preguntas para un examen on line, ...
  #1 (permalink)  
Antiguo 06/04/2009, 14:33
 
Fecha de Ingreso: enero-2009
Mensajes: 112
Antigüedad: 16 años, 3 meses
Puntos: 0
Ramdom de preguntas

Buenas Tardes, por aqui de nuevo, espero esten bien, una consulta saven como se puede hacer un ramdom de preguntas para un examen on line, las preguntas las extraigo de mi db en sql server 2000, gracias por la ayuda que me podais dar..
  #2 (permalink)  
Antiguo 06/04/2009, 14:56
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Respuesta: Ramdom de preguntas

Nada mas necesitas obtener los registros de manera aleatoria:

Código:
SELECT campos FROM tabla ORDER BY NEWID()
Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 06/04/2009, 16:47
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: Ramdom de preguntas

Hubiera jurado que lo ibas a redireccionar a tu puntada de la semana pasada
  #4 (permalink)  
Antiguo 07/04/2009, 00:02
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Respuesta: Ramdom de preguntas

No porque la puntada es con access, deja de beber
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 07/04/2009, 06:57
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: Ramdom de preguntas

Pues si, pero emulas la función de NEWID() da lo mismo en que lo hagas, y como te noté taaaan orgulloso de ella pues ....


ok, seguiré tu consejo, dejaré de beber de lunes a jueves
  #6 (permalink)  
Antiguo 07/04/2009, 07:09
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Respuesta: Ramdom de preguntas

NEWID en access? Hasta donde se no era posible, quizás en versiones recientes porque tiene bastante que no juego con access...pero no para cuando me tocó lidiar con esto, al rato me fijaré y nada más no sirve y vas a ver como te va a ir
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 07/04/2009, 15:34
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Respuesta: Ramdom de preguntas

Pues no...lo dicho, si bien es cierto que access soporta GUID, también es cierto que no se puede implementar de la misma manera como se hace en SQL, lo que es no saber ahora si tu puntada quedará para la posteridad...

Nomás porque no te puedo infraccionar
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #8 (permalink)  
Antiguo 07/04/2009, 16:17
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: Ramdom de preguntas

Cita:
Iniciado por Myakire Ver Mensaje
Pues si, pero emulas la función de NEWID() da lo mismo en que lo hagas, y como te noté taaaan orgulloso de ella pues ....


ok, seguiré tu consejo, dejaré de beber de lunes a jueves
a ver ..... mi estimado y nunca bien ponderado ¿dónde dije que la función NEWID corría en Access?



Deja lo digo con otras palabras, de tal forma que ni tu en tu más etílico estado no podrás comprender:

"Pues si, pero como en el otro post emulas, imitas, simulas el comportamiento que la función NewID de Sql Server, es decir generas números aleatorios y ordenas por el resultado de dicho random; entonces dicha solución ya no es exclusiva de Access, sino que pudieras implementarla en algún otro manejador de base de datos"

ya?

PD. Es más, deja reviso bien tu solución, capaz que ni hace eso que digo , eso me pareció que hacía a golpe de vista.

Última edición por Myakire; 07/04/2009 a las 16:23
  #9 (permalink)  
Antiguo 07/04/2009, 16:36
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Respuesta: Ramdom de preguntas

Ah, entonces es que no sabes leer nada más...bueno, ya me estaba preocupando
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #10 (permalink)  
Antiguo 07/04/2009, 18:36
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: Ramdom de preguntas



Como que estas así :emoticon de un dedo pulgar e indice muy cerca: de que te borre todos tus post trolleros
  #11 (permalink)  
Antiguo 13/04/2009, 09:29
 
Fecha de Ingreso: enero-2009
Mensajes: 112
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ramdom de preguntas

Hola buenos dias, gracias por la ayuda, ha y muy interesante su debate sobre el codigo. pues les indico se que debe ser una tonteria, pero me da este error:

Error de compilación de Microsoft VBScript (0x800A0401)
Se esperaba un final de instrucción
*****
y de esta forma estoy implementando la info enviada por ustedes:
sqltxt="select * from preguntas where idpregunta="&idpregunta order by newid();
  #12 (permalink)  
Antiguo 13/04/2009, 09:52
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: Ramdom de preguntas

Cita:
Iniciado por alexgonzalez Ver Mensaje
Hola buenos dias, gracias por la ayuda, ha y muy interesante su debate sobre el codigo. pues les indico se que debe ser una tonteria, pero me da este error:

Error de compilación de Microsoft VBScript (0x800A0401)
Se esperaba un final de instrucción
*****
y de esta forma estoy implementando la info enviada por ustedes:
sqltxt="select * from preguntas where idpregunta="&idpregunta order by newid();
Debería ser:

sqltxt="select * from preguntas where idpregunta=" & idpregunta & " order by newid()"

Ahora, deberías de ponerle un TOP a tu consulta, ¿o solo quieres obtener siempre todas las respuestas pero en diferente orden?
  #13 (permalink)  
Antiguo 13/04/2009, 10:00
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Respuesta: Ramdom de preguntas

A mi me parece como una contradicción. Estás haciendo una consulta a tu tabla de preguntas, tienes de dos:

1. Traes una pregunta que ya sabes cual es mediante idpregunta
2. Traes una o varias preguntas de manera aleatoria...quítale el "where idpregunta" y deja el order by newid.

Si aplicas las dos, quieres traer una pregunta que ya sabes cual es y quieres que sea aleatoria...no tiene sentido.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #14 (permalink)  
Antiguo 13/04/2009, 12:19
 
Fecha de Ingreso: enero-2009
Mensajes: 112
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ramdom de preguntas

Hola que tal estan, les cuento la primera linea de codigo no me funciona me da el mismo error.
Y disculpa si no me explique mejor aqui voy: lo que quiero es traer de forma aleatoria todas las preguntas. este es mi procedimiento tengo una pregunta en una tabla alli mismo hay cuatro posibles soluciones y como comente antes quiero que si hay varios usuarios realizando el mismo examen le salgan las preguntas en orden diferente, Gracias nuevamente por la ayuda....
  #15 (permalink)  
Antiguo 13/04/2009, 12:34
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Respuesta: Ramdom de preguntas

Hola alexgonzalez, si te entendí bien, lo que pretendes se puede conseguir asi:

sqltxt="select * from preguntas order by newid()"

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #16 (permalink)  
Antiguo 13/04/2009, 13:28
 
Fecha de Ingreso: enero-2009
Mensajes: 112
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ramdom de preguntas

Gracias por tu pronta respuesta, te comento funciona bien el codigo enviando, lo unico es que en algunos casos me repite una pregunta mas de una vez cual crees que pueda ser el problema..
  #17 (permalink)  
Antiguo 13/04/2009, 15:44
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Respuesta: Ramdom de preguntas

Hasta aquí llega el poder de la clarividencia necesitarías proporcionarnos el código y los datos que te arroja.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #18 (permalink)  
Antiguo 14/04/2009, 05:55
 
Fecha de Ingreso: enero-2009
Mensajes: 112
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ramdom de preguntas

Buenos dias, estubo bueno lo del poder de la clarividencia, aqui pongo el codigo que uso. ¡Gracias Nuevamente!

<%set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open (application("DBConn"))
set ra=createobject("ADODB.Recordset")
%>

<%if isarray(session("mytest"))=false then
idtest=request("idtest")
if idtest="" then response.redirect "default.asp"
dim pmytest(25,1)
sqltxt="select idpregunta from preguntas where idtest="&idtest

ra.open sqltxt,oconn
if ra.eof then
ra.close
set ra=nothing
oconn.close
set oconn=nothing
response.redirect "resettest.asp"
end if
i=0
do while not ra.eof 'se realiza el vector con los id de las preguntas
i=i+1
pmytest(i,0)=ra("idpregunta")
pmytest(i,1)=0
ra.movenext
loop
ra.close()
********se define los objetos sesion*****
sqltxt="select titulo from test where idtest="&idtest
ra.open sqltxt,oconn
titulo=ra("titulo")
ra.close
session("npreguntas")=i
session("test")=idtest
session("titulo")=titulo
session("posicion")=1
posicion=1
session("mytest")=pmytest
session("nick")=trim(request.form("nick"))
else
pmytest=session("mytest")
posicion=session("posicion")
pmytest(posicion,1)=request.form("R1") 'se cambio la linea a form1 a r1
session("mytest")=pmytest

if posicion <= session("npreguntas") then
posicion=posicion+1
session("posicion")=posicion
end if
end if
if pmytest(posicion,0)<>"" then

%>
<html>

<head>

<title>Test </title>
</head>

<body>

</p>
<form method="POST" action="test.asp" id="form1" name="form1">

<div align="center">
<center>
<table border="1" width="90%">
<tr>
<td width="100%" bgcolor="#B12148" align="center">
<p align="center"><font color="#FFFFFF" face="Verdana" size="2"><b><%=session("titulo")%></b></font><font color="#FFFFFF" face="Verdana" size="1"><b>
Pregunta <%=session("posicion")%> de <%=session("npreguntas")%></b></font></td>
</tr>
<tr>
<td width="100%">
<div align="center">
<center>
<%idpregunta=pmytest(posicion,0)
sqltxt="select * from preguntas order by newid()"'***linea mandada en el foro 'sqltxt="select * from preguntas where idpregunta="&idpregunta order by newid()"

ra.open sqltxt, oconn
%>
<table border="0" width="90%">
<tr>
<td width="100%" colspan="2" align="center"><font face="Verdana" size="2"><b><%=ra("texto")%>
</b></font>
</td>
</tr>
<tr>
<td width="100%" colspan="2">
<p align="center">&nbsp;</td>
</tr>

<tr>
<td width="100%" colspan="2">
<div align="center">
<center>
<table border="0" width="50%">
<%if ra("opcion1")<>"" then%>
<tr>
<td width="10%"><font face="Verdana" size="1"><input type="radio" value="1" name="R1"></font></td>
<td width="90%"><font face="Verdana" size="1"><%=ra("opcion1")%></font></td>
</tr>
<%end if%>
<%if ra("opcion2")<>"" then%>
<tr>
<td width="10%"><font face="Verdana" size="1"><input type="radio" value="2" name="R1"></font></td>
<td width="90%"><font face="Verdana" size="1"><%=ra("opcion2")%></font></td>
</tr>
<%end if%>
<%if ra("opcion3")<>"" then%>
<tr>
<td width="10%"><font face="Verdana" size="1"><input type="radio" value="3" name="R1"></font></td>
<td width="90%"><font face="Verdana" size="1"><%=ra("opcion3")%></font></td>
</tr>
<%end if%>
<%if ra("opcion4")<>"" then%>
<tr>
<td width="10%"><font face="Verdana" size="1"><input type="radio" value="4" name="R1"></font></td>
<td width="90%"><font face="Verdana" size="1"><%=ra("opcion4")%></font></td>
</tr>
<%end if

ra.close
%>
</table>
</center>
</div>
</td>
</tr>
<tr>
<td width="100%">
</td>
</tr>
<tr>
<td width="100%">
<p align="center"><input type="submit" value="Enviar" name="B1"></td>
</tr>
</table>
</center>
</div>


<p align="center">

</form>
  #19 (permalink)  
Antiguo 14/04/2009, 07:54
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: Ramdom de preguntas

Hola

Podrías mirar esto en caso que los magos no den con el problema

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #20 (permalink)  
Antiguo 14/04/2009, 13:50
 
Fecha de Ingreso: enero-2009
Mensajes: 112
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ramdom de preguntas

hola adler como estas, pues os cuento que nada de nada, me sigue repitiendo los valores de las preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:30.