Anledningen att ditt script INTE visar olika bilder är att du ställer dig alltid på första position och sedan i loopen kör .MoveNext vilket ALLTID kommer att visa samma bilder, dvs i den ordning som de ligger i databasen.
oh, lite OT men en funktion ska returnera ett värde en sub "printar" ett värde eller gör något annat där man inte behöver ett returnerat värde.
Detta kanske funkar:
<%
Sub Show(iImgToShow)
If Not Record.EOF Then Record.MoveFirst
For N = 1 TO iImgToShow
Randomize
RandNum = Int(Rnd * Ialt)
Record.Move RandNum
Response.Write "<a href='krypin.asp?checkid=" & Record("id") & "'><img src='" & Record("bild") & "' alt='" & Record("username") & "' border = '0' width= '69' height= '87'></a>"
Next
End Sub
Set Rs = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("database/members.mdb")
Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath
Sql = "Select count(*) as Found from members where not bild = 'Bilder\Medlemmar\ingen.gif'"
Set Record = Rs.Execute(Sql)
Ialt = Record("found")
Sql = "Select * from members where not bild = 'Bilder\Medlemmar\ingen.gif'"
Set Record = Rs.Execute(Sql)
Call Show(6)
%>
cya,
PatrikB
------------------
-=* IF there is a wrong way to do something, then someone will do it *=-
strSQLimg = "SELECT [id], username, bild FROM members WHERE NOT bild = 'Bilder\Medlemmar\ingen.gif'"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("database/members.mdb")
Set objRSimg = objConn.Execute(strSQLimg)
If Not objRSimg.EOF Then
varArray = objRSimg.GetRows()
End If
Set objRSimg = Nothing
objConn.Close
Set objConn = nothing
Set objArray = New clsArray
With objArray
.ArrayType = 2 '## -- a 2-dimensional array are set to be used --
.Positions = 2 '## -- 3 positions will be created on every index. positions start count at 0 --
.SetArray varArray
'## -- get randomly data as array --
varImages = .Random(6)
End With
Set objArray = Nothing
'## -- show random images --
If IsArray(varImages) Then
For N = 0 TO UBound(varImages,2)
"<a href='krypin.asp?checkid=" & varImages(0,N) & "'><img src='" & varImages(2,N) & "' alt='" & varImages(1,N) & "' border = '0' width= '69' height= '87'></a>"
Next
End If
%>
<!--#INCLUDE FILE=clsArray.asp"-->
borde funka rätt bra denna oxå :e om du använder dig av filen clsArray.asp som ligger i länken jag gav ovan .... script förslaget :)
cya,
PatrikB
------------------
-=* IF there is a wrong way to do something, then someone will do it *=-
Class clsArray
Private g_varArray ' As Variant
Private g_bolArrayType ' As Boolean
Private g_intPositions ' As Integer
Private g_bolCreated ' As Boolean