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

Muestra de forma aleatoria un nº de registros

Estas en el tema de Muestra de forma aleatoria un nº de registros en el foro de ASP Clásico en Foros del Web. Código: <% Option Explicit randomize Dim elementos, con, rs, sql, matrizseleccionados, maximo, salto, valor, referencia, nombre, precio, foto, i elementos= 4 Set con=Server.CreateObject("ADODB.connection") Set rs=Server.CreateObject("ADODB.RecordSet") ...
  #1 (permalink)  
Antiguo 29/03/2002, 14:04
 
Fecha de Ingreso: diciembre-2001
Mensajes: 262
Antigüedad: 23 años, 5 meses
Puntos: 0
Muestra de forma aleatoria un nº de registros


Código:
  
<% 
Option Explicit 
randomize
Dim elementos, con, rs, sql, matrizseleccionados, maximo, salto, valor, referencia, nombre, precio, foto, i
elementos= 4

Set con=Server.CreateObject("ADODB.connection")
Set rs=Server.CreateObject("ADODB.RecordSet")
sql= "SELECT referencia, nombre, pvp5, foto FROM articulo WHERE enportada=-1 ;"		' filtramos la tabla seleccionando 
																					' los productos a mostrar

con.Open "catalogo"		' abre la conexion usando DSN
rs.Open sql, con

IF NOT rs.EOF THEN
matrizseleccionados = rs.GetRows()
rs.Close
con.Close
Set rs=Nothing
Set con=Nothing

	' Aqui empezamos el codigo para mostrar de forma aleatoria de 4 en 4
	
maximo = UBOUND (matrizseleccionados, 2)+1	' el nº maximo de registros + 1 porque el primer registro es el 0
salto = maximo / elementos					' dividimos el total de elementos entre los elementos a mostrar cada vez
IF maximo <= elementos THEN salto = 1		' si el numero resultante es menor o igual del numero de elementos a mostrar
											' establecemos este valor a 1
%>

<html>
<head>
<title>Muestra de forma aleatoria </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">

<%
FOR i=0 TO maximo-1 STEP salto

valor = RND * (salto-1)		' establece un valor aleatorio

referencia= matrizseleccionados (0,i+valor)	' asigna la primera columna (referencia) y el nº registro aleatorio a la variable
nombre=matrizseleccionados (1,i+valor)
precio=matrizseleccionados (2,i+valor)
foto=matrizseleccionados (3,i+valor)
%>

<table>
	<tr>
		<td><%
			IF TRIM(foto)<> "" THEN
			%>
			<img src="imagenes/<%= foto %>">
			<%
			END IF
			%>
		</td>
		<td> <%= referencia %> </td>
		<td> <%= precio %> </td>
		<td> <%= nombre %> </td>
	</tr>
</table>
<%
NEXT
END IF
%>

</body>
</html>
<a href="http://www.almaluz.com"><Img src="http://www.almaluz.com/banners/B_almaluz.gif"></a>
  #2 (permalink)  
Antiguo 29/03/2002, 14:11
 
Fecha de Ingreso: diciembre-2001
Mensajes: 262
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: Muestra de forma aleatoria un nº de registros

Explicacion de funcionamiento.

Este codigo muestra de una base de datos con los campos:
referencia, nombre, precio, foto, enportada

una cantidad que nosotros especifiquemos mediante la variable elementos.

la particularidad es que cada vez que se recarga la pagina aparecen unos distintos de forma aleatoria.

Notese que la condicion para mostrar los registros es que el el campo enportada tenga el valor -1, osea, si queremos que un articulo aparezca en esta selección deberemos poner -1 en &quot;enportada&quot;.

No se si os servira :P

Juan

<a href="http://www.almaluz.com"><Img src="http://www.almaluz.com/banners/B_almaluz.gif"></a>
  #3 (permalink)  
Antiguo 29/03/2002, 18:25
Avatar de xtreme  
Fecha de Ingreso: diciembre-2001
Ubicación: Chile
Mensajes: 23
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Muestra de forma aleatoria un nº de registros

Podrias poner un link para bajar la bd.
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 17:35.