webForumDet fria alternativet

Fel på RND?

ASP

7 svar · 252 visningar · startad av Inferis

Medlem sedan sep. 2000667 inlägg
Frågan#1
Set Rs = Conn.Execute("SELECT top 1 id,rnd AS rand FROM BDE" & strWhere & " ORDER BY 2 ")

Kan denna koden stämma? Jag vill slumpa fram data, men det kommer bara två specifika poster hela tiden.

Hur gör man för att den ska slumpa alla poster? Det finns nu 50 poster i db:n.

Medlem sedan dec. 20003 887 inlägg
#2

Du måste nog använda Randomize först, så att slumpgeneratorn får ett frö att jobba utifrån.

[edit] Du kan ju visa lite mer kod, så kanske man förstår hela problemet...

Medlem sedan apr. 20003 174 inlägg
#3

..vad använder du för databas till detta?

Medlem sedan sep. 2000667 inlägg
#4

Jag har randomize med. Använder Access.
Det funkar som det ska, men den hämtar bara två poster.

Medlem sedan sep. 2000667 inlägg
#5
		If strPID = "" Then
			If Session("onlyvote") > "" And Not Session("onlyvote") = "0" Then strWhere = " WHERE choice=" & Session("onlyvote")
                         Set Rs = Conn.Execute("SELECT top 1 id,rnd AS rand FROM BDE" & strWhere & " ORDER BY RND() ")

			If Not Rs.BOF Then
				strPID = Rs(0)
				Response.Redirect "default.asp?pid=" & strPID
			Else
				Response.Redirect "default.asp"
			End If
		End If
Medlem sedan dec. 20003 887 inlägg
#6
Set Rs = Conn.Execute("SELECT top 1 id, rnd AS rand FROM BDE" & strWhere & " ORDER BY " & CInt(Rnd(1) + 1) & ";"

Så länge du har kvar top 1 kommer den bara att hämta två poster...

Medlem sedan sep. 2000667 inlägg
#7

Det blir bara två poster även om man tar bort top 1.

Medlem sedan sep. 2000667 inlägg
#8

Jag löste det genom att använda koden från:
[link]
http://www.webforum.nu/showthread.php?s=&threadid=13153&highlight=slump
[/link]

246 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
116 ms — ändringar (db)