webForumDet fria alternativet

Slumpa

25 svar · 507 visningar · startad av hacktheplanet

hacktheplanetMedlem sedan nov. 2001263 inlägg
#1

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

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

nån som kan hjälp mig :(

PatrikBMedlem sedan mars 20002 836 inlägg
#4

kika in detta script

Kanske kan vara ngt för dig.

cya,
PatrikB

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

hacktheplanetMedlem sedan nov. 2001263 inlägg
#5

hjälpte inte :-(

PatrikBMedlem 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

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

hacktheplanetMedlem sedan nov. 2001263 inlägg
#7

fattar inget utav scripten???

hacktheplanetMedlem sedan nov. 2001263 inlägg
#8

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

PatrikBMedlem 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

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

PatrikBMedlem 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

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

[Redigerat av PatrikB den 23 jan 2002]

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

PatrikBMedlem 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

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

PatrikBMedlem sedan mars 20002 836 inlägg
#13

glömde en sak,

Fel mess??

cya,
PatrikB

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

hacktheplanetMedlem 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>"
jboy_87Medlem 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>"

------------------
ASP är bäst fuck the rest!!!

hacktheplanetMedlem sedan nov. 2001263 inlägg
#16

nu får jag

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

vart någonstans har du inkluderat filen?

cya,
PatrikB

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

hacktheplanetMedlem sedan nov. 2001263 inlägg
#18

längst ner på sidan!!!

hacktheplanetMedlem 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
PatrikBMedlem 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

------------------
-=* IF there is a wrong way to do something, then someone will do it *=-

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)