Infatti, la cosa si può realizzare con un ciclo tipo:
codice:
Set Rs1 = Server.CreateObject("ADODB.Recordset")
sql1 = "SELECT COUNT(*) FROM locale"
Rs1.open sql1, objConn
dim max
max = RS1(0)
if max=0 then
response.write("database vuoto!")
else
Set Rs2 = Server.CreateObject("ADODB.Recordset")
sql2="SELECT * FROM locale"
Rs2.Open sql2, objConn
Randomize()
dim k, casual(1000), check, numero
numero=5 'questo è il numero dei record che vuoi pescare a caso!!
cont = 0
check=false
do while not cont>(numero - 1)
rs2.movefirst
casual(cont) = Int(Rnd() * Max)
' //// routine per evitare doppioni ////////////////////////////////
' (se trova un record già estratto torna su senza incrementare cont)
' //////////////////////////////////////////////////////////////////
for k=0 to (cont-1)
if casual(cont)=casual(k) then check=true
end if
next
' ///////////////////////////////////////////////////////////////////
If Not (Rs2.EOF OR check) Then
Rs2.Move casual(cont)
ID=RS2("ID")
foto=RS2("foto")
'ecc. ecc........................
%>
<tr>
<td ><%=id %></td>
<td ><%=foto %></td>
</tr>
<%
cont=cont + 1
check=false
end if
loop
%>
</table></center>
<%
end if
Rs1.Close
Set Rs1 = Nothing
Rs2.Close
Set Rs2 = Nothing
adattato, naturalmente, al database usato.
"Numero" è appunto il numero di records da pescare a caso.
Se esistono dei records vuoti bisogna inserire un controllo per evitarli.