Jeg har selv brugt nedenstående kode til netop samme formål, så du kan jo prøve at kigge lidt på den og evt. rette den lidt til så den passer til dine forhold.
OBS: Jeg er ikke den store ASP haj, så jeg vil ikke afvise at der er noget som kan gøres bedre/hurtigere/smartere :)
<% 'Forbindelsen til databasen er allerede åben på dette tidspunkt Dim strSQL Dim i, j, k, ArraySize, tmpId Dim PicArray(2) 'Antal billeder der skal findes (husk den starter fra 0!) Husk også at rette j og k variablerne! Dim Exists
strSQL = "SELECT COUNT(Id) AS PicNo FROM pics" 'Find antal billeder i tabellen Set rs = OConn.Execute(strSQL) ArraySize = rs("PicNo")
ReDim IdArray(ArraySize)
strSQL = "SELECT Id FROM pics" 'Hent alle tilgængelige IDer fra tabellen Set rs = OConn.Execute(strSQL)
i = 1 While Not rs.EOF 'Fyld arrayet op med tilgændelige IDer IDArray(i) = rs("Id") rs.MoveNext i = i + 1 Wend
Randomize
For j = 0 To 2 'Udvælg x antal tilfældige poster fra arrayet og tjek at IDet ikke allerede er blevet udtaget Exists = False
Do tmpId = IdArray(Int(Rnd*ArraySize)) For k = 0 To 2 If PicArray(k) = tmpId Then Exists = True End If Next Loop Until Exists = False
PicArray(j) = tmpId Next
strSQL = "SELECT * FROM pics WHERE Id = " & PicArray(0) & " OR Id = " & PicArray(1) & " OR Id = " & PicArray(2) 'Hent de udvalgte billeder Set rs = OConn.Execute(strSQL)
While Not rs.EOF 'Udskrid de udvalgte billeder Response.Write "<img border=""0"" src=""" & rs("sti_til_billede") & """ alt="""& rs("beskrivelse") & """ width=""150"" height=""100""><br><br>" rs.MoveNext Wend
rs.close set rs = nothing OConn.Close set OConn = nothing %>
<% randomize R=clng(100000*rnd) SQL = "SELECT TOP 5 * FROM Tabel ORDER BY rnd(-(ID)*" & R & ")" %>
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.