Ändrade det till bilder nu, men det visas bara 2 bilder.
slumpa fram 5 olika bilder
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 →Jag använder inte den där koden längre. Jag använder mig istället av
ORDER BY RAND()
i sql-satsen.
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.
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
%>
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
Fungerade, men var tvungen att ta bort kodsnutten: bilder(0,post) = bilder(0,antalbilder-i)
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)&"'> "
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????
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...
tack, nu fick jag lite rotation.......har funderat på hur jag ska få in alt="&username&" men inte lyckats till 100%
Response.write "<img height=""120"" width=""100"" src='/images/users/"&bilder(0,post)&"' alt="""&username&""">"
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
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.
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
Aj, just ja, det är ju bara en bilderna som slumpas fram... hm...
Vad ska man hitta på då..
Nu fungerar bildnamnet som alt.....men inget username som det ska vara
Nej du, jag tycker att det där borde fungera, den kod jag postade.
Observerade du att även sql-frågan var ändrad?
såg inte den detaljen, tack för all hjälp, allt funkar perfekt nu....kolla in webbisen.com :-)
Strålande!
hur förhindrar man att se samma bild 2 gånger
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) & """> "
Next
response.write "</td></tr></table>"
end if
Rs.Close
Set Rs = Nothing
%>