Slumpa

ASP

25 svar · 554 visningar · startad av hacktheplanet

Medlem sedan nov. 2001263 inlägg
Trådstart#1

Hur gör jag om jag vill slumpa fram 6 st bilder ur kolumnen bild ur databasen utan och visa samma bild??

Medlem sedan nov. 2001263 inlägg
#2

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() %>
Medlem sedan nov. 2001263 inlägg
#3

nån som kan hjälp mig :(

Medlem sedan mars 20002 836 inlägg
#4

kika in detta script

Kanske kan vara ngt för dig.

cya,
PatrikB

Medlem sedan nov. 2001263 inlägg
#5

hjälpte inte :-(

Medlem sedan mars 20002 836 inlägg
#6

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

Medlem sedan nov. 2001263 inlägg
#7

fattar inget utav scripten???

Medlem sedan nov. 2001263 inlägg
#8

kan du göra om den scripten ovan snälla :(

Medlem sedan mars 20002 836 inlägg
#9

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

Medlem sedan mars 20002 836 inlägg
#10

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

Medlem sedan nov. 2001263 inlägg
#11

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!! :(

Medlem sedan mars 20002 836 inlägg
#12

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

Medlem sedan mars 20002 836 inlägg
#13

glömde en sak,

Fel mess??

cya,
PatrikB

Medlem sedan nov. 2001263 inlägg
#14

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>"
Medlem sedan aug. 20011 099 inlägg
#15
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>"
Medlem sedan nov. 2001263 inlägg
#16

nu får jag

Kompileringsfel i Microsoft VBScript (0x800A03EA)
Syntaxfel
/clsArray.asp, line 6
Class clsArray
Medlem sedan mars 20002 836 inlägg
#17

vart någonstans har du inkluderat filen?

cya,
PatrikB

Medlem sedan nov. 2001263 inlägg
#18

längst ner på sidan!!!

Medlem sedan nov. 2001263 inlägg
#19

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
Medlem sedan mars 20002 836 inlägg
#20

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

263 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)