Jag har ett fotoalbum där jag lagra sökvägen till bilderna i en databas. När jag klickar på en bild så öppnas denna i ett popup-fönster. Jag skickar med ID:t på bilden (eg: visaBild.asp?id=8) och hämtar upp det i popuppen där bilden visas.
Nu vill jag kunna navigera frammåt och bakåt i albumet på ett smidigt sätt.. jag vill alltså komma åt ID:t som finns på raden innan, och efter, den som har ID=8.
Finns det någon smidig lösning på detta problem? Eller blir jag tvungen att hämta alla ID:n och lägga dem i en array och sedan använda den för navigeringen?
Men hur vet den att det är bilden med ID=8 som skall visas då?
Funkar inte det bara om jag börjar från första posten?
Självklart kan man "loopa" sig fram till den raden.. men det känns omständigt? Eller?
Jag har löst det med en loop så att det blir rätt bild till rätt thumbnail. Då jag inte är någon expert inom asp så vet jag inte om det är optimalt eller ej men det fungerar.
Använd dig av paging. Du sätter ju antalet poster du vill visa per sida etc. Säg att du sätter en post per sida, sen beroende på din query så läser du ju in så många poster du vill. När du navigerar dig så har du tex querystringen sida.asp?page=1 vilket i sin tur skulle visa den första bilden, nästa sida skulle visa bild2 osv..
Den vet ju vilken bild som ska visas genom att ange ID't som du gjorde innan?
Du blir nog tvungen till att lägga alla i en array om du inte kan "möblerar om" dina ID.
Du skapar en ny kolumn som du döper till RowNum. När du sedan lägger till en ny post eller tar bort en post får du möblera om RowNum så att den alltid innehåller en sekvens 1,2,3,4... utan några hål. Denna kan du sedan använda dig av för att navigerar med, eftersom du alltid vet att det finns en bild i 7 och 9 om du har 8. Om du har så många bilder vill säga.
Själv ommöbleringen är lite jobbig om du inte har Oracle som har RowNum inbyggt, eller MySQL som borde lösa detta med sin Limit. Då behöver du inte bygga någon egen RowNum.
I Sql Server och Acces finns inte denna ypperliga funktion, så där får man kludda med temp-filer eller avancerade SQL frågor.