jimpaMedlem sedan jan. 2001361 inlägg Hej,
Har en kod som ser ut så här. Problemet är att samma Id kan kommer upp efter varann, hur kan jag ändra i koden så att inte samma Id kommer upp?
Ett sätt kanske kunde vara om man lägger senaste Id i en Session och kollar med en if-sats om samma Id kommer upp efter randomen och gör den det så ska ett nytt Id slumpas.
Är det någon som vet hur koden skullle kunna se ut?
Set objRS = Conn.Execute(SQL)
Dim rndMax
rndMax = CInt(objRS.RecordCount)
objRS.MoveFirst
Do While Not objRS.EOF
Response.Write objRS("bannerID") & "<BR>"
objRS.MoveNext
LOOP
objRS.MoveFirst
Dim rndNumber
Randomize Timer
rndNumber = Int(RND * rndMax)
objRS.Move rndNumber
Response.Write "<B>" & objRS("bannerID") & "</B>"
objRS.Close
Set objRS = Nothing
Conn.Close
Set Conn = Nothing
Kan det här hjälpa något? Förstår nog inte riktigt.
Randomize
slump = cInt(rnd()*34)+1
slump2 = slump
Do until slump2 <> slump
slump2 = cInt(rnd()*34)+1
Loop
slump3 = slump
Do until slump3 <> slump and(slump3 <> slump2)
slump3 = cInt(rnd()*34)+1
Loop
OveRRidEMedlem sedan feb. 200112 078 inlägg Jag förstår faktiskt inte riktigt hur din kod fungerar, än mindre varför du vill göra just sådär. ;)
Men jag gör väl en gissning:
Set objRS = Conn.Execute(SQL)
Dim rndMax
Dim intLastItem
rndMax = CInt(objRS.RecordCount)
objRS.MoveFirst
Do While Not objRS.EOF
Response.Write objRS("bannerID") & "<BR>"
intLastItem = objRs(0)
objRS.MoveNext
LOOP
objRS.MoveFirst
function randomMove(rndMax)
Dim rndNumber
Randomize Timer
rndNumber = Int(RND * rndMax)
randomMove = rndNumber
end function
st = 0
do while 1 = 1
intTemp = cint(randomMove(rndMax))
if intTemp <> cint(intLastItem) then
exit do
end if
loop
objRS.Move intTemp
Response.Write "<B>" & objRS("bannerID") & "</B>"
objRS.Close
Set objRS = Nothing
Conn.Close
Set Conn = Nothing