webForumDet fria alternativet

Paging problem

8 svar · 475 visningar · startad av Wiklund!!

Wiklund!!Medlem sedan juli 2002549 inlägg
#1

På en sida visar jag bilder sorterade efter datum som folk har laddat upp. När man klickar på "nästa" kommer man till bilden som laddades upp innan (dvs page=2).

Det funkar bra om man kollar på dom i ordning.
Problem uppstår när man går in direkt på en bild som finns med i "topplistan". Klickar man då "nästa" från den bilden kommer man också till page=2. Jag vill att när man klickar "nästa" ska man komma till den bild som laddades upp innan den.

Hoppas ni fattar vad jag menar.

Finns det nått sätt att hoppa mellan ID-nummer i tabellen? Så när man klickar "nästa" kommer man till den bilden med ett snäpp lägre ID-nummer. Eller vet någon nån annan lösning som skulle funka?

doggelitoMedlem sedan juni 20003 076 inlägg
#2

typ så här: :)

Dim objRs
Set objRs = ...hämta poster...

If Not objRs.Eof Then
     Do Until objRs.Eof
          If Not objRs.Bof Then 
               objRs.MovePrevious
               Response.Write("<a href=""sidan.asp?bildid=" & objRs("id") & """>Nästa bild</a>")
               objRs.MoveNext
          End If
          Response.Write("<img src="dinbild.gif">")
          objRs.MoveNext
     Loop
End If
J.N.Medlem sedan apr. 20031 660 inlägg
#3

HEJ!

Finns bilderna i nummerordning går det bra att använda vanlig addition för att länka till nästa, och även kontrollera att man inte kommer för långt.

Det ska tydligen även gå bra med vanlig Paging, dvs dela upp tex ett sökresultat på flera sidor.
De senast veckorna har det varit många trådar om just detta.

Wiklund!!Medlem sedan juli 2002549 inlägg
#4

Vanlig paging fungerar inte i detta fall. Det jag vill ha är paging efter ID nummer. När man klickar "Nästa" ska man komma till bilden med ett snäpp högre ID nummer. Och tvärtom med "Föregående"..

Det måste ju finnas nån lösning till detta?

emissionMedlem sedan dec. 19996 721 inlägg
#5

Lösningen är att i databassökningen även söka ut de två närmaste id-numren, och göra länkar för dessa. Hur denna sökning ser ut beror lite på vad du använder för databas (DBMS)

Wiklund!!Medlem sedan juli 2002549 inlägg
#6

Jag använder senaste versionen av mySQL.. någon som vet hur man gör detta eller har nån bra länk?

emissionMedlem sedan dec. 19996 721 inlägg
#7

Det finns flera sätt, men i detta fall har jag funnit att subselectar är effektivast (det händer inte ofta), och eftersom du kör en sen MySQL så är det möjligt

SELECT ID,(SELECT ID FROM tabellen WHERE ID<5000 ORDER BY ID DESC LIMIT 1) as Previous , (SELECT  ID FROM tabellen WHERE ID>5000 ORDER BY ID LIMIT 1) as Next
FROM tabellen
WHERE ID=5000

edit: Hade skrivit Previous två gånger

Wiklund!!Medlem sedan juli 2002549 inlägg
#8

Verkar intressant. Fattar inte riktigt koden. Tror du att du kan visa den i ett exempel, med en nästa och tillbaka länk i. Behöver verkligen den här funktionen.

emissionMedlem sedan dec. 19996 721 inlägg
#9
if not isnull(rs("Previous")) then
'skriv ut länk till bild med ID:t rs("Previous")
end if

if not isnull(rs("Next")) then
'skriv ut länk till bild med ID:t rs("Next")
end if
130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)