man kan ju alltid kolla hur många poster det finns, sen randomizer med det talet som max, och sen loop:a rs.movenext så många gånger som slumptalet blev.
För att citera en TV serie (kommer inte ihåg vilken) "Man kan göra så. Men det är inte rätt" Det känns iaf inte rätt. Luktar fel liksom att man måste loopa sig fram till rätt post. Näää.
Här är en kodsnutt som jag har gjort för att slumpa fram en länk ur min databas:
<%
SQL = "select count(*) AS count_lankar from lankar"
Set RS_count_lankar = databas.Execute(SQL)
Randomize
vilkenlank = Int(rnd*RS_count_lankar("count_lankar"))-1
SQL = "Select * from lankar"
Set RSdbase = Server.CreateObject("ADODB.Recordset")
RSdbase.open SQL, Session("dbasepath")
RSdbase.Move vilkenlank
url = RSdbase("lank")
lank_namn = RSdbase("namn")
lank_beskriv = RSdbase("beskrivning")
%>
... Alltså kollar jag först hur många länkar som finns... slumpar fram ett tal utifrån det... sen öppnar jag tabellen i ett recordset och hämtar posten som slumptalet tog fram...
<%
Dim links()
Dim counter,i,found
SQL = "select count(*) AS count_lankar from lankar"
Set RS_count_lankar = databas.Execute(SQL)
Randomize
counter = 0
do
link = Int(rnd*RS_count_lankar("count_lankar"))-1
found = 0
for i = 0 to counter - 1
if links(i) = link then
found = 1
exit for
end if
next
if found = 0 then
links(counter) = link
counter = counter -- 1
end if
if counter = 6 then
exit do
end if
loop
SQL = "Select * from lankar"
Set RSdbase = Server.CreateObject("ADODB.Recordset")
RSdbase.open SQL, Session("dbasepath"),adLockPessimistic,adOpenKeyset
for i = 0 to 5
RSdbase.Move links(i)
url = RSdbase("lank")
lank_namn = RSdbase("namn")
lank_beskriv = RSdbase("beskrivning")
'gör något med länk
next
%>
Det är inte testat på något vis men du kan väl hämta någon ide i alla fall.
374 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a