webForumDet fria alternativet

Vissa inte samma Id efter varann!?

ASPur ASP

2 svar · 160 visningar · startad av jimpa

jimpaMedlem sedan jan. 2001361 inlägg
#1

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
AddeladdeMedlem sedan jan. 20013 406 inlägg
#2

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
#3

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
130 ms totalt · 3 externa anrop · v20260731065814-full.363dfaf6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)