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?
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 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.
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 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)
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 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
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 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