Hur gör jag om jag vill slumpa fram 6 st bilder ur kolumnen bild ur databasen utan och visa samma bild??
Slumpa
25 svar · 507 visningar · startad av hacktheplanet
hittade det här men det slumpas fram ibland samma bilder!!!
<%
Response.Buffer = True
Function Show()
Randomize
RandNum = Int(Rnd * Ialt) + 1
Record.MoveFirst
For i = 1 to RandNum - 1
Record.MoveNext
next
Response.Write "<a href='krypin.asp?checkid=" & Record("id") & "'><img src='" & Record("bild") & "' alt='" & Record("username") & "' border = '0' width= '69' height= '87'></a>"
end function
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)
%>
<% Response.Write Show() %>
<% Response.Write Show() %>
<% Response.Write Show() %>
<% Response.Write Show() %>
<% Response.Write Show() %>
<% Response.Write Show() %>
nån som kan hjälp mig :(
hjälpte inte :-(
Kan bero på att du uppdaterar sidan för snabbt och random funktionen räknar "på samma utgångsläge".
Prova att uppdatera med kanske en 10 sek eller mer emellan.
cya,
PatrikB
------------------
-=* IF there is a wrong way to do something, then someone will do it *=-
fattar inget utav scripten???
kan du göra om den scripten ovan snälla :(
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 *=-
eller:
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 *=-
[Redigerat av PatrikB den 23 jan 2002]
har provat ingen av dom funkar får felmess på den jag inkluderat filen
/clsArray.asp, line 6
Class clsArray
det andra scriptet slumpar fram samma bild med bara 3 bilder!! :(
har du lagt inkluderings filen utanför all övrig kod. Antingen först eller sist i dokumentet bör en inkludering av funktions-filer göras.
cya,
PatrikB
------------------
-=* IF there is a wrong way to do something, then someone will do it *=-
glömde en sak,
Fel mess??
cya,
PatrikB
------------------
-=* IF there is a wrong way to do something, then someone will do it *=-
nu får jag:
Kompileringsfel i Microsoft VBScript (0x800A0400)
Programsats förväntas.
/slumpa.asp, line 34
"<a href='krypin.asp?checkid=" & varImages(0,N) & "'><img src='" & varImages(2,N) & "' alt='" & varImages(1,N) & "' border = '0' width= '69' height= '87'></a>"
reponse.write "<a href='krypin.asp?checkid=" & varImages(0,N) & "'><img src='" & varImages(2,N) & "' alt='" & varImages(1,N) & "' border = '0' width= '69' height= '87'></a>"
------------------
ASP är bäst fuck the rest!!!
nu får jag
Kompileringsfel i Microsoft VBScript (0x800A03EA)
Syntaxfel
/clsArray.asp, line 6
Class clsArray
vart någonstans har du inkluderat filen?
cya,
PatrikB
------------------
-=* IF there is a wrong way to do something, then someone will do it *=-
längst ner på sidan!!!
det e nått fel på det här:
Class clsArray
Private g_varArray ' As Variant
Private g_bolArrayType ' As Boolean
Private g_intPositions ' As Integer
Private g_bolCreated ' As Boolean
vilken VB Script Engine har du??
du måset ha ngn av v. 5.x ... e inte riktigt säker vilken, men ngn av 5:orna ska det vara eller bättre.
Eller?
har du glömt att stänga någon if-sats, loop eller dylikt. Det kan oxå ge detta felmeddelande.
cya,
PatrikB
------------------
-=* IF there is a wrong way to do something, then someone will do it *=-