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

Registro en Orden Aleatorio

Estas en el tema de Registro en Orden Aleatorio en el foro de ASP Clásico en Foros del Web. Hola Gente!!!! Estoy tratando de mostrar un conjunto de productos en un orden aleatorio, la idea sería mostrar cada vez que un usuario entra a ...
  #1 (permalink)  
Antiguo 11/05/2005, 16:50
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santa Fe - Argentina
Mensajes: 35
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta Registro en Orden Aleatorio

Hola Gente!!!!

Estoy tratando de mostrar un conjunto de productos en un orden aleatorio, la idea sería mostrar cada vez que un usuario entra a la página distintos productos y a la vez en un orden diferente. Resulta que encontré una forma y es haciendo la siguiente consulta:

"SELECT Top 4 Productos.CodProducto, Productos.NombreProducto, Productos.Codigo, TiposProductos.Tipo, Productos.Precio, Productos.Imagenchica, Productos.Oferta, Rnd([CodProducto]) AS n FROM TiposProductos INNER JOIN Productos ON TiposProductos.Codigo=Productos.CodTipoProducto WHERE Productos.Oferta=True ORDER BY Rnd([CodProducto]) Desc"

Resulta que cuando ejecuto la consulta en access me lo muestra en un orden diferente, pero cuando la ejecuto desde la página no pasa nada , si actualizo la página se sigue viendo igual.

Alguien me podrá guiar por donde puede venir el problema o como puedo solucionar el problema.
Desde ya muchas gracias a todos!!!

Saludos Analía
  #2 (permalink)  
Antiguo 11/05/2005, 17:07
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Ammm... la verdad que ni idea, pero si siempre usás la nomenclatura tabla.nombreCampo, probá de colocar Rnd([Productos.CodProducto]) en vez de Rnd([CodProducto])

No creo que funcione.. pero no se me ocurre más nada al respecto
__________________
...___...
  #3 (permalink)  
Antiguo 11/05/2005, 17:07
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años
Puntos: 5
en access te sale bien el query??
como estas haciendo el RS??
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #4 (permalink)  
Antiguo 12/05/2005, 13:01
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santa Fe - Argentina
Mensajes: 35
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola, gracias por las respuestas, te cuento como hago la ejecución del RS:

Set MyConn=Server.CreateObject("ADODB.Connection")
Set RS2 = Server.CreateObject("adodb.recordset")

str="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("..\db\baseadvice.mdb") & ";"

MyConn.Open str
consulta2 = "SELECT Top 4 Productos.CodProducto, Productos.NombreProducto, Productos.Codigo, TiposProductos.Tipo, Productos.Precio, Productos.Imagenchica, Productos.Oferta, Rnd([CodProducto]) AS n FROM TiposProductos INNER JOIN Productos ON TiposProductos.Codigo=Productos.CodTipoProducto WHERE ((Productos.Oferta=True)) ORDER BY Rnd([CodProducto]) Desc"

Set RS2 = MyConn.Execute(consulta2)

y cuando termino de generar todo lo que hago es:
Myconn.Close
set rs2 = nothing
set Myconn = nothing

Saludos y Gracias!!!

Analía
  #5 (permalink)  
Antiguo 12/05/2005, 13:23
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Pues si eso funciona pedi dias y dias de mi tiempo haciendo precisamente registros aleatorios, pues necesitaban una DB de Access, aqui hay algo de lo que hice en esa ocasion, fue hace mucho tiempo y solo postee los conceptos basicos aqui, pero a lo mejor te sirve

http://www.forosdelweb.com/showthrea...ighlight=clase

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 12/05/2005, 13:45
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santa Fe - Argentina
Mensajes: 35
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola a todos nuevamente!!!

Les cuento que segui probando y resulta que la consulta funciona: acá les paso el link para que vean el rtdo:

http://www.pescatop.com.ar/pruebaofertas.asp

Les cuento que lo que pasaba a mi entender es lo siguiente: resulta que el numero aleatorio que genera es un numero entre 0 y 1, por lo tanto lo que cambia son decimales de decimales por lo que si son pocos los registros que hay que mostrar por ahí no se nota en seguida, pero si se ponen más registros para mostrar si, que es lo que ocurre ahora, para que se den cuenta cuando lo probaba yo al principio eran 6 registros que cumplian con la condición y yo mostraba 4, ahora muestra 4 y son 9 los que se obtiene para el resultado, por lo que tiene más opción para mostrar.

Si no es esta la explicación de por que me funciona ahora y antes no, no se entonces por donde viene la mano

Bueno saludos a todos y gracias por todas las ayudas prestadas.

Analía desde Santa Fe - Argentina
  #7 (permalink)  
Antiguo 12/05/2005, 15:29
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santa Fe - Argentina
Mensajes: 35
Antigüedad: 20 años, 6 meses
Puntos: 0
Correción

Hola a todos!!! con gran tristeza , les cuento que lo anterior no funciona, no es tan así como yo suponia, funciona cuando se le da la gana lo de ordenar aleatoriamente, lo que voy a intentar el algo que me propone el compañero "u_goldman", cualquier cosa les vuelvo a comentar.

Saludos y gracias!!!!!
  #8 (permalink)  
Antiguo 12/05/2005, 15:58
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Mantennos al tanto, yo perdi muchas horas tratando de hacer funcionar lo mismo que tu quieres en Access, nunca pude...y saber que en SQL y MySQL con una simple instruccion ORDER BY [NEWID()],[RAND()] es mas que suficiente

Pre Salu, que manana es viernes!
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 12/05/2005, 17:07
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola

Sabes que puede estar pasando, por lo regular en Database cuando no presenta ninguna alteracion garda en cache los resultados de X consulta, entonces cuando vuelves a pedir la misma consulta y la tabla no ha sido modificada entonces debuelve lo mismo que esta en cache, eso puede ser el problema, has esta prueba...

1. En pagina1.asp mira el resultado.

2. En pagina1.asp haz un update X a la tabla

3. F5 en pagina1.asp para mirar de nuevo el orden aleatorio

Tal vez sea eso, jamas he intentado orden aleatorios desde la base de datos porque me parece mas trabajo para ella, pero bueno nunca lo he usado asi que no estoy seguro, siempre lo he hecho en ASP como:

select datos from tabla where ID in (CADENA_ALEATORIA)

Pero prueba eso, por ahi puede ser el detalle, el hecho de que esta en cache la ultima consulta.

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #10 (permalink)  
Antiguo 15/05/2005, 10:39
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santa Fe - Argentina
Mensajes: 35
Antigüedad: 20 años, 6 meses
Puntos: 0
De acuerdo

Hola a todos nuevamente, les cuento que la solución que funcionó al final es la que propuso nuestro compañero u_goldman hace un tiempo atrás, gracias por la ayuda a todos!!!!
Saludos Analía
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 21:39.