webForumDet fria alternativet

Slumpa med fso

ASP

25 svar · 841 visningar · startad av Asa · sida 2 av 2

Frågan, av Asa

Vill slumpa fram en bild som finns i en speciell mapp varje gång sidan laddas. Nån som vet?!?

Läs frågan i sin helhet →
Medlem sedan mars 20015 287 inlägg
#21

Lösningen heter väl int va?

	rndNum = int(rnd * UBound(varyImage))

Då blir det inget fel.

Medlem sedan apr. 20003 174 inlägg
#22

Palle skrev:

rndNumber = Int(Rnd * UBound(arr))

Medlem sedan mars 20002 836 inlägg
#23

se där ja,

int va det ja ...... kanske man skulle börja att använda.
Själv använder man ju mest CInt().

/PatrikB

Medlem sedan nov. 200153 inlägg
#24

Jäklar, ni har ju haft ett verbalt slagsmål....

Hur som helst har jag modifierat era förslag.

<%
'Slumpar fram och presenterar en bild.
Set GetPictures = Server.CreateObject("ADODB.Recordset")
PictureSQL = "SELECT FILPATH "
PictureSQL = PictureSQL & "FROM SK_BILDBANK "
PictureSQL = PictureSQL & "WHERE ENTCODE = 'SKHB' "
PictureSQL = PictureSQL & "AND AKTIV = 1 "
PictureSQL = PictureSQL & "ORDER BY FILNAMN "
GetPictures.Open PictureSQL, Connect

	If GetPictures.EOF AND GetPictures.BOF then	
		Response.Write "Välkomstbild"
	Else		
		Do Until GetPictures.EOF 			
			strImage = strImage & GetPictures("FILPATH") &";"		
		GetPictures.MoveNext
		Loop		
		strImage = Left(strImage, Len(strImage) - 0)

		arrImages = Split(strImage, ";")
		
	End If

If IsArray(arrImages) Then

	randomize
	rndNumber = Int(Rnd * UBound(arrImages))
	Response.Write "<img src=""images/bildbank/"& arrImages(rndNumber) &""" border=""0"" width=""314"" height=""145"">"

	Var_ImagePath = arrImages(rndNumber)

End If

GetPictures.Close
Set GetPictures = Nothing

'Uppdaterar antalet gånger bilden är visad
SQL ="UPDATE SK_BILDBANK SET BILDVISAD = BILDVISAD + 1 WHERE FILPATH = '" & Var_ImagePath & "' "
Connect.execute(SQL),,128
%>

Som ni kanske ser så hämtar jag inte filnamnen via FSO utan rakt från en databas.

Funkar som en klocka.
Nåväl, nån kanske har användning för den.

// Switch

Medlem sedan maj 200010 687 inlägg
#25

Vad händer när man har ett semikolon i bildnamnet?
Varför inte köra med ett tecken som inte får finnas i filnamn? Som t.ex. |...

Eller ännu bättre, skippa strängkonkateneringen och bygg ihop en array direkt i loopen. Mer prestandasnålt och snyggare kod.

Sen att lämna en tom plats i arrayen ser ju inte särskilt snyggt ut.

Medlem sedan feb. 20032 027 inlägg
#26

Själv använder jag detta script på webbisen.com som jag fick hjälp med här på wF och det funkar toppen

<%
Dim oConn ,strSQL ,bilder ,i, j ,Count ,post ,antalBilder ,Found 
     
    Set oConn = server.CreateObject("ADODB.Connection") 
    oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= " & server.MapPath("/din databas.mdb") & ";" 

    strSQL = "SELECT picture, username, visaBild" & vbCrLf & _ 
             "FROM tblUsers" & vbCrLf & _ 
             "WHERE not picture='nopic.jpg' and visaBild=true" 

    Set rs = oConn.Execute(strSQL) 
    If rs.EOF Then 
        Response.Write "Det finns inga bilder..." 
    Else 
        Response.Write "<table width=""95%""><tr><td align=""left"">" 
        bilder = rs.GetRows() 
        antalBilder = UBound(bilder, 2) + 1 

        Count = 6 
        If Count > antalBilder Then 
            Count = antalBilder 
        End If 
        ReDim Shown(Count) 

        Randomize 

        For i = 1 To Count 
            Do 
                Found = False 
                post = Int(Rnd * antalBilder) 

                For j = 1 To i - 1 
                    If Shown(j) = post Then 
                        Found = True 
                        Exit For 
                    End If 
                Next 
            Loop While Found 
            Shown(i) = post 

            Response.Write "<img border=""1"" height=""100"" width=""100"" src=""/images/users/" & bilder(0, post) & """ alt=""" & bilder(1, post) & """>&nbsp;" 
        Next 
        Response.Write "</td></tr></table>" 
    End If 
    rs.Close 
    Set rs = Nothing 
%>
276 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
133 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)