webForumDet fria alternativet

föregående/nästa bild

ASP

16 svar · 505 visningar · startad av Calevan

Medlem sedan maj 20031 173 inlägg
Frågan#1

Hej!

Jag vill hämta ut en rad ur en databas, samt raden innan och raden efter (om de finns). Finns det något smidigt sätt att göra detta på? Går det att hämta allt och med hjälp av GetRows lägga de ti en array och sen söka i den, eller det kanske inte är bra?

hela grejen är att jag vill visa en bild, och sen vill jag ha en länk till föregående bild och en till nästa bild, men jag har ingen aning om hur jag ska göra... :( tack!

Medlem sedan juni 200032 967 inlägg
Medlem sedan jan. 2003438 inlägg
#3

Detta borde kunna lösa det likande detta:

http://www.webforum.nu/showthread.p...=Paging+getrows

Medlem sedan maj 20031 173 inlägg
#4

din länk var lite svår att följa Sanny...

ok, det är inte riktigt så enkelt att bara slänga på ett pagingsystem. jag visar:

min sida:
http://217.28.195.189/visa.asp?AlbumID=220
min sida där jag lagt in paging och föregående/nästa:
http://217.28.195.189/testar/visa.asp?AlbumID=220

man ska altså både kunna klicka på en av tumnaglarna för att komma ett valfritt antal bilder framåt, eller klicka på föregående/nästa länkar under bilden. detta innebär att jag hela tiden måste veta vilken sida jag ska visa i pagingen, och när jag klickar på tex nästa så måste jag få med vad den bilden har för id, så att jag kan få fram rätt kommentarer under. Testa så ser ni nog vad jag menar. Några bra förslag på hur man kan lösa detta?

tack!

Medlem sedan juni 2004533 inlägg
#5

Skicka med vilken sida du ska gå till istället för vilket id bilden på sidan ska ha.

Medlem sedan jan. 2003438 inlägg
#6

Tänkte på det med nästa och föregående, kan du inte skicka en Request.Querystring med -1 eller --1. Antar att du hämtar från databas.

Och ändra på ID, om de nu ligger i ordning.

/r
Såg inte Guffa´s inlägg, han brukar ha stenkoll så troligen ett bättre alternativ. :)

Medlem sedan maj 20031 173 inlägg
#7

Guffa skrev:

Skicka med vilken sida du ska gå till istället för vilket id bilden på sidan ska ha.

du menar från tumnaglarna? bara numrera dem från 1 osv och skicka med album och sida? var det så du mena? det är ju en tanke...

Medlem sedan maj 20031 173 inlägg
#8

det funkar ju fint. jag behöver ju dock skicka med filnamnet oxå för att kunna få fram rätt kommetarer. så jag skickar altså med, albumets id, bildensid, och vilken sida som ska visas... blir en del, gör väl kanske inte så jättemycket?

dock har jag ett annat stort problem. har en sida som listar alla kommentarer:
http://217.28.195.189/testar/kommentarer.asp

när man klickar på en av de bilderna ska man komma till rätt album och rätt bild ska visas... det funkar ju inte nu längre. hur skulle jag kunna fixa det?

på något sätt så känns det inte som jag är inne på en optimal lösning då jag måste slänga med fler grejer hela tiden (som vilken sida), borde gå att kläcka något smart som gör att det går ändå. dock vet jag inte alls hur, därför jag frågar er här.

tack!

Medlem sedan apr. 20031 660 inlägg
#9

HEJ!

Nä, det känns konstigt, måste jag säga!

1. Bilderna finns väl i en databas?
2. Där finns väl vilket album den tillhör?
3. Till bilden hör en bildtext (datum, fotograf etc)
4. Varför inte endast länka med bild-id från resp bild?
5. Album visas genom en DISTINCT-fråga. (ev separat tabell)

Eller?

Medlem sedan maj 20031 173 inlägg
#10

1. Ja
2. Jupp
3. Precis
4. Jo, det är det jag vill göra, precis det jag vill göra. Dvs nästa knappen ska skicka nästa bilds id till sidan. Frågan är helt enkelt, hur vet jag vad nästa bild har för ID?

Medlem sedan juni 200032 967 inlägg
#11

Varför ska du veta vad nästa bild har för ID?
Jag förstår inte alls vad det är för skillnad mot vanlig paging med en post per sida...

Medlem sedan maj 20031 173 inlägg
#12

@nders skrev:

Varför ska du veta vad nästa bild har för ID?
Jag förstår inte alls vad det är för skillnad mot vanlig paging med en post per sida...

http://www.webforum.nu/showthread.php?s=&postid=1060419#post1060419

som jag försökte förklara i det inlägget så är det för att jag kan länkas vidare till fotona via olika vägar, och kommer jag från kommentarer.asp så måste jag också på något sätt veta vilken sida det är som ska visas. Och eftersom databasen redan innehåller _många_ kommentarer så vill jag verkligen inte lägga till det manuellt.

Medlem sedan juni 200032 967 inlägg
#13

Ok, kolla den här tråden: http://www.webforum.nu/showthread.php?s=&threadid=126454

Medlem sedan maj 20031 173 inlägg
#14

kanon! jag tror att jag kan lösa allt med den informationen. lovar att återkomma om/när jag får mer problem :)

tack!

Medlem sedan maj 20031 173 inlägg
#15

Jag slänger in en fråga till i samma tråd här och hoppas att kanske någon ser den. Det är en direkt följdfråga på det jag gjorde ovan. Ändrade min SQL sats så den blev precis så som Anders länkade till i en annan tråd. Använder parameteriserade frågor och har därför nu fått detta tillslut:

  strSQL =  "SELECT AlbumID, Katalog, BildID, Filnamn " &_
            "FROM vwAlbumAnvBilder " &_
            "WHERE BildID=(SELECT max(BildID) FROM vwAlbumAnvBilder WHERE BildID < ? AND AnvID=? AND AlbumID=?) " &_
            "OR BildID = ? AND AnvID=? AND AlbumID=? " &_
            "OR BildID=(SELECT min(BildID) FROM vwAlbumAnvBilder WHERE BildID > ? AND AnvID=? AND AlbumID=?)"

  Command.CommandText = strSQL
  Command.Parameters.Append(Command.CreateParameter("BildID", adInteger, adParamInput,, strBildID))
  Command.Parameters.Append(Command.CreateParameter("AnvID", adInteger, adParamInput,, strUserID))
  Command.Parameters.Append(Command.CreateParameter("AlbumID", adInteger, adParamInput,, strAlbumID))
  Command.Parameters.Append(Command.CreateParameter("BildID", adInteger, adParamInput,, strBildID))
  Command.Parameters.Append(Command.CreateParameter("AnvID", adInteger, adParamInput,, strUserID))
  Command.Parameters.Append(Command.CreateParameter("AlbumID", adInteger, adParamInput,, strAlbumID))
  Command.Parameters.Append(Command.CreateParameter("BildID", adInteger, adParamInput,, strBildID))
  Command.Parameters.Append(Command.CreateParameter("AnvID", adInteger, adParamInput,, strUserID))
  Command.Parameters.Append(Command.CreateParameter("AlbumID", adInteger, adParamInput,, strAlbumID))

Som synes så lägger jag till samma tre parametrar tre gånger, måste jag göra det såhär, eller kan jag göra på något sätt så att det räcker med att lägga till dem en gång var?

tack!

Medlem sedan jan. 2003438 inlägg
#16

Det borde väl gå att lägga de i loop

<%
For i = 1 To 3
    Command.Parameters.Append(Command.CreateParameter("BildID", adInteger, adParamInput,, strBildID))
    Command.Parameters.Append(Command.CreateParameter("AnvID", adInteger, adParamInput,, strUserID))
    Command.Parameters.Append(Command.CreateParameter("AlbumID", adInteger, adParamInput,, strAlbumID))
Next
%>

/r

Kom precis på att man "nog" kan lösa samma sak så här också (hoppas det iallafall :)).

<%
For i = 1 To 3
  with Command.Parameters
  	.Append(Command.CreateParameter("BildID", adInteger, adParamInput,, strBildID))
  	.Append(Command.CreateParameter("AnvID", adInteger, adParamInput,, strUserID))
  	.Append(Command.CreateParameter("AlbumID", adInteger, adParamInput,, strAlbumID))
  end with
Next
%>
Medlem sedan maj 20031 173 inlägg
#17

tack, gör så.

tror desutom koden jag postade var lite felaktig. kollar på det nu.

393 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
135 ms — deklarationer (db)
0 ms — hämta statistik (cache)
160 ms — hämta tråd, inlägg och bilagor (db)
230 ms — ändringar (db)