webForumDet fria alternativet

slumpa fram 5 olika bilder

ASP

42 svar · 1 099 visningar · startad av ampy · sida 2 av 3

Frågan, av ampy

Har sökt bland tidigare inlägg men har inte hittat något som visar hur man kan göra detta. SQL = "Select \ from members where bild = 'bildyes' " dessa krav vill jag uppfylla. Bilderna finns i en mapp som heter krypinbild och där heter bilderna bildid .jpg Där id är ett nummer på den medlemmen som jag hämtar från SQL-satsen härovan. Hur ska man nu göra för att slumpa fram 5 olika bilder var

Läs frågan i sin helhet →
Medlem sedan mars 2000542 inlägg
#21

Ändrade det till bilder nu, men det visas bara 2 bilder.

Medlem sedan feb. 20011 498 inlägg
#22

Jag använder inte den där koden längre. Jag använder mig istället av

ORDER BY RAND()

i sql-satsen.

Medlem sedan dec. 200012 464 inlägg
#23
if i = antalBilder then exit for

borde vara

if i+1 = antalBilder then exit for

Vad är problemet nu?

Jag tappar tråden när du går tillbaks och redigerar dina gamla inlägg.

Medlem sedan mars 2000542 inlägg
#24

Får samma fel:
Microsoft VBScript runtime error '800a0009'

Subscript out of range: '[number: -1]'

/index4.asp, line 16

p.s Redigerar inlägg på gammal vana.

SQL = "SELECT picURL FROM Gallery"

Randomize
Set RS = Connect.Execute(SQL)
if  not rs.eof then
    bilder = rs.getrows()
    antalBilder = ubound(bilder,2) + 1
    For i = 0 to 4
          if i+1 = antalBilder then exit for
        post = Int(RND*(antalBilder - i))
	Response.write "<img src='images/thumbs/"&bilder(0,post)&"'>"
                bilder(0,post) = bilder(0,antabilder-i)
Next
end if
Rs.Close
Set Rs = Nothing
%>
Medlem sedan dec. 200012 464 inlägg
#25
SQL = "SELECT picURL FROM Gallery"

Randomize
Set RS = Connect.Execute(SQL)
if  not rs.eof then
    bilder = rs.getrows()
    antalBilder = ubound(bilder,2) + 1
    For i = 0 to 4
          if i = antalBilder then exit for
        post = Int(RND*(antalBilder - i))
	Response.write "<img src='images/thumbs/"&bilder(0,post)&"'>"
                bilder(0,post) = bilder(0,anta[b]l[/b]bilder-i)
      Next
end if
Rs.Close
Set Rs = Nothing

Ännu en felstavning, du har antabilder.

Använd option explicit och gör dim på alla variabler, så är det lättare att hitta den typen av fel.

Glöm det där jag sa om i + 1

Medlem sedan mars 2000542 inlägg
#26

Fungerade, men var tvungen att ta bort kodsnutten: bilder(0,post) = bilder(0,antalbilder-i)

Medlem sedan feb. 20032 027 inlägg
#27

Jag modifierade detta script och jag fick fram:

Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= "& server.MapPath("/db/Inloggning.mdb") & ";"

SQL = "Select picture from tblUsers where not picture='nopic.jpg'"
RStemp = UBOUND(oConn.Execute(SQL).GetRows(),2)+1 

Randomize
Set RS = oConn.Execute(SQL)
  response.write "<table width=""95%""><tr><td align=""center"">"
if  not rs.eof then
    bilder = rs.getrows()
    antalBilder = ubound(bilder,2) + 1
    For i = 0 to 4
          if i = antalBilder then exit for
        post = Int(RND*(antalBilder - i))
      
	Response.write "<img height=""120"" width=""100"" src='/images/users/"&bilder(0,picture)&"'> &nbsp; "
                bilder(0,picture) = bilder(0,antalbilder-i-1)
       

Next
end if
 response.write "</td></tr></table>"
Rs.Close
Set Rs = Nothing

Bilderna visas men jag får inte fram nån random, det är samma bilder hela tiden....nån som kan hjälpa????

Medlem sedan mars 20015 287 inlägg
#28
Response.write "<img height=""120"" width=""100"" src='/images/users/"&bilder(0,post)&"'>   "
                bilder(0,post) = bilder(0,antalbilder-i-1)

/red. med reservation för vad egentligen raden:

bilder(0,post) = bilder(0,antalbilder-i-1)

gör...

Medlem sedan feb. 20032 027 inlägg
#29

tack, nu fick jag lite rotation.......har funderat på hur jag ska få in alt="&username&" men inte lyckats till 100%

Medlem sedan mars 20015 287 inlägg
#30
Response.write "<img height=""120"" width=""100"" src='/images/users/"&bilder(0,post)&"' alt="""&username&""">"
Medlem sedan feb. 20032 027 inlägg
#31

har testat den koden men ingen alt-text dyker fram nu heller, kolla in https://www.webbisen.com och håll musen över användarens bild

Medlem sedan mars 20015 287 inlägg
#32

Om du tittar i källkoden ser du att du har en korrekt alt-tagg utskriven, däremot verkar du inte ha något innehåll i variabeln username.
Om du ska ha username på den användare vars bild du visar måste du ju plocka ut det ur databasen det med.

Å lite kod:

Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= "& server.MapPath("/db/Inloggning.mdb") & ";"

SQL = "Select picture, username from tblUsers where not picture='nopic.jpg'"
RStemp = UBOUND(oConn.Execute(SQL).GetRows(),2)+1 

Randomize
Set RS = oConn.Execute(SQL)
  response.write "<table width=""95%""><tr><td align=""center"">"
if  not rs.eof then
    bilder = rs.getrows()
    antalBilder = ubound(bilder,2) + 1
    For i = 0 to 4
          if i = antalBilder then exit for
        post = Int(RND*(antalBilder - i))
     Response.write "<img height=""120"" width=""100"" src='/images/users/"&bilder(0,post)&"' alt="""&bilder(1,post)&""">"

     ' ???           bilder(0,picture) = bilder(0,antalbilder-i-1)
       

Next
end if
 response.write "</td></tr></table>"
Rs.Close
Set Rs = Nothing

Om fältet heter username i din db.

Medlem sedan feb. 20032 027 inlägg
#33

Det borde jag kollat *ler*

Microsoft VBScript runtime error '800a0009'

Subscript out of range: '[number: 1]'

/default.asp, line 166

får jag som svar

med Subscript out of range: '[number: 0]' stämmer alt-texten i visa källa men ingen text visas när man håller musen över

Medlem sedan mars 20015 287 inlägg
#34

Aj, just ja, det är ju bara en bilderna som slumpas fram... hm...
Vad ska man hitta på då..

Medlem sedan feb. 20032 027 inlägg
#35

Nu fungerar bildnamnet som alt.....men inget username som det ska vara

Medlem sedan mars 20015 287 inlägg
#36

Nej du, jag tycker att det där borde fungera, den kod jag postade.
Observerade du att även sql-frågan var ändrad?

Medlem sedan feb. 20032 027 inlägg
#37

såg inte den detaljen, tack för all hjälp, allt funkar perfekt nu....kolla in webbisen.com :-)

Medlem sedan mars 20015 287 inlägg
#38

Strålande!

Medlem sedan feb. 20032 027 inlägg
#39

hur förhindrar man att se samma bild 2 gånger

Medlem sedan feb. 20032 027 inlägg
#40

fick detta förslag på pellesoft, men sidan bara blev vit

<% 
    Set oConn = Server.CreateObject("ADODB.Connection") 
    oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= "& server.MapPath("/db/Inloggning.mdb") & ";" 

    strSQL = "SELECT picture, username, visaBild" & vbCrLf & _
             "FROM tblUsers" & vbCrLf & _
             "WHERE not picture='nopic.jpg' and visaBild=true" 

    Set RS = oConn.Execute(strSQL) 
    If rs.eof then 
        Response.Write "Det finns inga bilder..." 
    Else
        Response.Write "<table width=""95%""><tr><td align=""center"">" 
        bilder = rs.getrows() 
        antalBilder = ubound(bilder,2) + 1 

        Count = 6 
        If Count > antalBilder Then
            Count = antalBilder
        End If
        ReDim Shown(Count)

        Randomize 

        For i = 0 to Count
            Do
                Found = False
                post = Int(RND * antalBilder)

                For j = 0 to i - 1
                    If Shown(j) = post Then
                        Found = True
                        Exit For
                    End If
                Next 
            Loop While Found
            Shown(i) = post

            Response.write "<img border=""1"" height=""120"" width=""100"" src=""/images/users/" & bilder(0,post) & """ alt=""" & bilder(1,post) & """>&nbsp; &nbsp;"   
        Next 
        response.write "</td></tr></table>" 
    end if 
    Rs.Close 
    Set Rs = Nothing 
%>
256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)