Avatar billede mekaniker Nybegynder
05. august 2002 - 10:43 Der er 6 kommentarer og
1 løsning

Vis næste billede

Jeg har en side, hvor der bliver vist nogle thumbnails, hvis man trykker på et vises billedet så i fuld størelse. Pa denne side har jeg så ovenover billedet 2 pile, 1 til at vise det næste billede i rækken og en til det forrige.

Billedfilen bliver hentet fra en db på følgende måde:
---------------------------------
id = request.QueryString("ID")
SQL3 = "SELECT * FROM galleri WHERE ID=" & id
set rs3 = myconn.execute(SQL3)
id = rs3("id")
pic = rs3("billedfil")
besk = Replace(rs3("beskrivelse")&"", vbCrLf, "<BR>")

Koden til pilen er lavet så den bare lægger 1 til id'en
men dette giver mig et problem, da det er muligt for brugerne af systemet og slette et billede.
Kan man på en eller anden måde bare bede den om at tage den næste eller forrige post i db'en, så det ikke fungere efter id'en
Avatar billede eagleeye Praktikant
05. august 2002 - 12:21 #1
du kan gøre det med 3 SQL'er en som viser billede og en som finder næste ID og en som finde forrige ID :  visbillede.asp?id=34

id = request.querystring("id")
sql = "SELECT ID FROM billedetabel WHERE ID > " & id
set rs = conn.execute (sql)
if rs.EOF then
  nextID = ""
else
  nextID = rs("id")
end if
sql = "SELECT ID FROM billedetabel WHERE ID < " & id
set rs = conn.execute (sql)
if rs.EOF then
  prevID = ""
else
  prevID = rs("id")
end if
sql = "SELECT billedeSti FROM billedetabel WHERE ID = " & id
set rs = conn.execute (sql)
if not rs.EOF then
  'DIN KODE SOM VISER BILLEDET
end if
if prevID = "" then
  Response.write "Forrige"
else
  Response.write "<a href=visbillede.asp?id="&prevID&">Forrige</a>"
end if
Response.write " | "
if nextID = "" then
  Response.write "Næste"
else
  Response.write "<a href=visbillede.asp?id="&nextID&">Næste</a>"
end if
Avatar billede mekaniker Nybegynder
05. august 2002 - 12:53 #2
Det virker jo helt OK

Nu kan jeg se at du har har lavet det sådan at hvis man ser det sidste billede i rækken, forsvinder linket til det næste.

Kan man måske gøre sådan at det løber i en ring. dvs. hvis du ser det sidste billede og man trykker videre, at man så kommer til det første igen. og selvfølgelig også den anden vej.
Avatar billede mekaniker Nybegynder
05. august 2002 - 13:13 #3
Jeg har lige fundet en fejl, som jeg ikke lige selv kan lokalisere.
Hvis jeg starter med at vise det første billede og trykker på næste virker det OK, men når jeg så kommer frem til det sidste billede, og trykker på forrige springer den helt tilbage til det første billede.
Avatar billede eagleeye Praktikant
05. august 2002 - 14:50 #4
Denne SQL, sql = "SELECT ID FROM billedetabel WHERE ID < " & id

Skal rettes til:

sql = "SELECT ID FROM billedetabel WHERE ID < " & id & " ORDER BY ID DESC"

Så skulle den vist vælge den rigtige ID til forrige.
Avatar billede mekaniker Nybegynder
05. august 2002 - 15:42 #5
OK det virker.
Avatar billede mekaniker Nybegynder
05. august 2002 - 15:42 #6
Tror du at man kan få det til at køre i ring.
Avatar billede eagleeye Praktikant
05. august 2002 - 15:46 #7
Når ja det havde jeg glemt...

Ja denne:

  nextID = ""

Skal så udskiftes med:

  sql = "SELECT Min(ID) as nextID FROM billedetabel"
  set rs = conn.execute (sql)
  nextID = rs("nextID")

Ligeledes med prev...:

  prevID = ""

Skal så udskiftes med:

  sql = "SELECT Max(ID) as prevID FROM billedetabel"
  set rs = conn.execute (sql)
  nextID = rs("prevID")
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester