webForumDet fria alternativet

tre slumpade bilder

10 svar · 484 visningar · startad av magnusfeldth

magnusfeldthMedlem sedan jan. 20034 480 inlägg
#1

Halloj

Olika koder för att slumpa fram en text eller en bild har jag hittat, men hur gör man för att slumpa fram tre olika poster?

Dessutom vill jag sedan skriva ut dessa tre poster så här:
bild1 (adressen kommer från det framslumpade värdet) - mellanrum - bild2 - mellanrum - bild3

(jag vet hur jag skulle kunna få fram tre bilder och mellanrum mellan alla, men jag vill alltså inte ha nåt mellanrum efter den sista bilden... hur gör jag?)

Bosse168Medlem sedan nov. 20031 018 inlägg
#2

Vad använder du för databas?

FraggelMedlem sedan sep. 2003301 inlägg
#3

Kör samma sub 3 ggr och kolla så att den inte slumpar fram samma nummer som tidigare, det är det enklaste sättet, vet dock inte om det finns snyggare sätt...

magnusfeldthMedlem sedan jan. 20034 480 inlägg
#4

Bosse168 skrev:

Vad använder du för databas?

MS access

solbulleMedlem sedan mars 20015 287 inlägg
#5

Euh, typ...

response.write slump() & " " & slump() & " " & slump()

Eller?

magnusfeldthMedlem sedan jan. 20034 480 inlägg
#6

Men hur slumpar man fram 3 stycken då?

FraggelMedlem sedan sep. 2003301 inlägg
#7

!!!!!

Int(Rnd())

????

solbulleMedlem sedan mars 20015 287 inlägg
#8

Jag tyckte du skrev att du redan hade den funktionen? Det är väl bara att köra den tre gånger? (Iofs kanske man vill gardera sig att inte få samma resultat flera gånger..)

FraggelMedlem sedan sep. 2003301 inlägg
#9
Function Slump(intAntalPoster)
  Slump = Int(Rnd(intAntalPoster)+1)
End Function

Kan vara lite fel skrivar det helt ur huvudet, men generellt så bör det funka... Är inte helt säker på Rnd Syntaxen har inget att kolla mot...

Bosse168Medlem sedan nov. 20031 018 inlägg
#10

Testa detta:

<% 
    For i = 1 to 3 ' <---- Här sätter du hur många poster du vill skriva ut
 
            Randomize
            strRandom = Int(RND*strPoster) - 1
 
            Set RecSet = Connect.Execute("SELECT bild_url FROM medlemmar WHERE bild_godkand=1") '  <---- Ändra tabell och kolumn.
            Do While strRandom >= 0
                    RecSet.MoveNext
 
            strRandom = strRandom - 1
            Loop
			%>

<img border="0" src="<%=RecSet("bild_url")%>" width="80" height="100">
<%
Next
 
RecSet.Close : Set RecSet = Nothing
emil_adMedlem sedan apr. 200373 inlägg
#11

Har det inte löst sig kan du använda min slumpkod, gjorde om den till Access, använder array.

<%
' ### arraydim 3 st
arrValda = Array(0,0,0) 

' ### koppling
Set objCon = Server.CreateObject("ADODB.Connection") 
objCon.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db/dindatabas.mdb") & ";"
Set objRs = Server.CreateObject("ADODB.Recordset") 

	' ### tabellinfo samt villkor
	strSQL = "SELECT * FROM dintabell" 
	objRs.Open strSQL, objCon, 3, 3 
	
	intPoster = objRs.RecordCount 
	
	' Start 2-0 = 3 poster
	For x = 0 To 2 

				Do 
				strOk = true 
				Randomize 
				intSlump = int(rnd()*intPoster) 
				For Each value In arrValda 
				
				If value = intSlump Then strOk = false 
				
				Next 

	If strOk Then arrValda(x) = intSlump 
	Loop Until cBool(strOk) 

				objRs.Move intSlump 
	
				If Not objRs.EOF Then 
				%>
				<img src="katalog/<%=objRs("bildnamn")%>" width="50" height="70" border="0">
				<%
				End if 
				objRs.MoveFirst 
				Next 

objRs.Close 
Set objRs = Nothing 
objCon.Close 
Set objCon = Nothing 
%>
136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)