webForumDet fria alternativet
Logga in / Bli medlem

Random bilder

ASP

6 svar · 274 visningar · startad av kallee

Medlem sedan juli 2001143 inlägg
Trådstart#1

Jag vet inte ifall detta går, men ifall jag har bilder som jag ska vill ska slumpas fram, tex sidan, index.asp.. När jag besöker den första gången så visas bild1.gif, och nästa gång visas bild3 går detta?, och gärna att man kan göra så att bilden minskas till 125 * 100 pixels..

Medlem sedan aug. 2001112 inlägg
#2

Det går tex att lösa genom att lägga namnet på bilden i en databas och sedan hämta det slumpat...Se kod nedan

<%

Dim oRS, oConn,sSQL
Dim rndMax,rndNumber
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/intranet/authors.mdb"))
sSQL = "SELECT * FROM banners"
Set oRS = Server.CreateObject("ADODB.Recordset")
oRS.Open sSQL , oConn, 3
rndMax = CInt(oRS.RecordCount)
oRS.MoveFirst
Randomize Timer
rndNumber = Int(RND * rndMax)
oRS.Move rndNumber
response.write "<img border=0 src='imgs\" & oRS("aPicture") & "'></a>"
set oRS = nothing
set oConn = nothing
%>

@EchO

Medlem sedan juli 2001143 inlägg
#3

Tack så mycket!

Men skulle du kunna förklara lite bättre? Jag kan lite ASP och Acess databaser och så men inte så mycket...

[Redigerat av kallee den 01 nov 2001]

Medlem sedan aug. 2001112 inlägg
#4

Det första du bör göra är att skapa en access databas med tex tre fält:
Id, Link och aPicture.
Tryck in några bilder i databasen...
tex..test.gif.
Lägg sedan bilden test.gif i mappen
imgs.

har gjort några kommentarer i koden:

<%

Dim oRS, oConn,sSQL
Dim rndMax,rndNumber
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/intranet/authors.mdb"))
sSQL = "SELECT * FROM banners"
Set oRS = Server.CreateObject("ADODB.Recordset")
oRS.Open sSQL , oConn, 3
rndMax = CInt(oRS.RecordCount) ' Räknar antalet recordsets
Response.Write("Antal bilder att slumpa: "&rndMax&"<br>")
oRS.MoveFirst
Randomize ' Ger RND ett nytt värde
rndNumber = Int(RND * rndMax) 'RND slumpar fram ett värde mellan 0 - 1.
'Multipliceras med rndMax (antalet recordsets). Detta värde konverteras till ett heltal genom int.
oRS.Move rndNumber ' Pekaren flyttas till posten i databasen
Response.Write("Bild nr:"&rndNumber&"")
response.write "<img border=0 src='imgs\" & oRS("aPicture") & "'>" ' Bilden skrivs ut för den aktuella posten.
set oRS = nothing
set oConn = nothing
%>

L8er
@EchO

Medlem sedan feb. 20012 412 inlägg
#5

Hej!

I ASP serverobject finns något som heter adrotator, där du kan ange exakt bannerstorlek samt hur ofta (procentuellt) en banner ska visas i förhållande till en annan.

r: slumpen är inte att förlita sig på, det kan mycket väl hända att samma banner visas 2 ggr i rad då.

mvh Jörgen :)

Medlem sedan juli 2001143 inlägg
#6

Jorgen >> Skulle du kunna vara snäll att visa ett exempel?

Medlem sedan feb. 20012 412 inlägg
#7

Hej!

Kolla här:
http://www.idg.se/webstudio/asp/asp321.asp

mvh Jörgen :)

389 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
127 ms — deklarationer (db)
127 ms — hämta statistik (db)
130 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)