---
title: "Visa kommande post och posten innan"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/6131-visa-kommande-post-och-posten-innan"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Pudolf"
published: "2000-07-25T16:23:00.000Z"
updated: "2000-07-27T12:24:00.000Z"
replies: 13
views: 215
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/6131-visa-kommande-post-och-posten-innan"
---

# Visa kommande post och posten innan

## #1 — Pudolf, 2000-07-25T16:23Z

Hejsan.

Jag har en sida med en adress typ såhär:
\--
visa.asp?ID=10
\--

då visar den saker från iD 10,, osv.
Givetvis skiftar ju adressen beroende på vilket ID man är på.

Hursomhelst.
Varje post har en rubrik. På sidan ska det vara först en länk till föregående post, och sedan en länk till nästa post.

typ såhär:
föregående(länken= default.asp?ID=9)
nästa(länken= default.asp?ID=11)

Då undrar jag, hur gör man?

Tacksam för svar!

Permalänk: https://www.webforum.nu/p/6131

## #2 — cf, 2000-07-25T17:19Z

Nåt sånt här:

föregående(länken= default.asp?ID=\<% =ID-1 %\> )
nästa(länken= default.asp?ID=\<% =ID+1 %\> )

Och så får du kanske hämta ID-värdet med en request.querystring först.

Detta förutsätter förstås att "nästa" och "föregående" ID-nummer existerar. Man kan ev. göra det lite krångligare och ta reda på vad som "egentligen" är nästa post, om man t ex har raderat en post, så att serien blir t ex 1, 2, 3, 5, 6, 7...

\[Redigerat av cf den 25 jul 2000\]

Permalänk: https://www.webforum.nu/p/244768

## #3 — Pudolf, 2000-07-25T18:14Z

tackar!

går det att göra så att rubriken till den post som antingen finns på "föregående" eller "nästa" skrivs ut?

För alla poster får en rubrik.
Så att det kanske kunde stå såhär.

Denna artikel kom innan ="Rubriken" och sen någon kod för att länka till föregående.

Denna artikel kommer sedan = "Rubriken" och sen någon kod för att länka till nästa.

Och sedan skulle de ju vara bra med detta, som du nämde. Att den kollar om post är raderad eller om detta var första/sista posten.

Så , vet någon hur detta skrivs?

Tacksam för svar!

Permalänk: https://www.webforum.nu/p/244769

## #4 — emission, 2000-07-25T18:39Z

Det finns tyvärr inte många andra sätt att göra detta än att utföra tre sökningar i databasen.

En för "huvudartikeln":

SELECT yaddayadda...

En för den "tidigare":

SELECT TOP 1 rubrik, id..... WHERE id\< gällande id

..och en för de "senare"

SELECT TOP 1 rubrik, id..... WHERE id\> gällande id

Man skulle kunna köra med:

SELECT TOP 1 rubrik, id..... WHERE id\< gällande id

och 

SELECT TOP 2 rubrik, id..... WHERE id\> id från förra sökningen

..men det känns lite knasigt

\[Redigerat av emission den 25 jul 2000\]

Permalänk: https://www.webforum.nu/p/244770

## #5 — cf, 2000-07-25T18:43Z

Funderade på samma sak...

En annan variant är kanske att använda ett recordset som man hoppar fram och tillbaka i, men det blir kanske ännu osmidigare...

Permalänk: https://www.webforum.nu/p/244771

## #6 — emission, 2000-07-25T18:51Z

Problemet är att få recordset:et. Man kan ju tyvärr (?) inte söka ut "SELECT TOP 3 yaddayadda WHERE ID\>=myID och en till innan"

Permalänk: https://www.webforum.nu/p/244772

## #7 — cf, 2000-07-25T19:16Z

Nej - det har du rätt i. ;)

Permalänk: https://www.webforum.nu/p/244773

## #8 — Pudolf, 2000-07-26T13:38Z

Tack, det fungerar utmärkt!
förutom en sak...
(testade emission's kod)

när man är på den allrasenaste posten, då finns ju det förstås ingen post efter... Då visar den detta fula felemddelande. Och den vill man ju inte ha där.. SÅ finns det något sätt at undkomma detta?

Dett händer förstås oxå om man är på den första posten..

```
ADODB.Field error '80020009' 

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record. 

/visa.asp, line 239
```

Skulle det på något sätt gå att skriva såhär typ:

```
If RS.EOF Then
Response.write("<font face='Arial' size='1'><font color='CCCCFF'>här tar det slut!</font>")
```

Var skulle jag sätta den isånafall?
Jag använder detta ibland.

Tacksam för svar!

\[Redigerat av Pudolf den 26 jul 2000\]

Permalänk: https://www.webforum.nu/p/244774

## #9 — cf, 2000-07-26T13:47Z

Nu vet jag inte hur din övriga kod ser ut, men jag antar att du först hämtar id från "nästa" artikel med en selectsats och sedan skriver ut en länk på skärmen med rätt id. 

Då skulle du kunna lägga in en:

```
<% If Not RS.EOF Then %>
<a href="blabla.asp?id=<%=RS("ID")%>">Nästa artikel</a>
<% End If %>
```

Då skrivs inget ut på skärmen om det inte finns någon "nästa" artikel.

\[Redigerat av cf den 26 jul 2000\]

Permalänk: https://www.webforum.nu/p/244775

## #10 — Pudolf, 2000-07-26T15:54Z

hej cf,
jag testade din kod, men den verkade inte fungera så bra för mig :(.

högst upp på sidan hämtar jag id',.

```
SQL = "SELECT * FROM TestTabell WHERE ID =" & Request("ID")
SQL = SQL & " Order by ID Desc"
Set RS = Connection.Execute(SQL)
```

sedan för att visa : föregående och nästa post använder jag denna kod (emission's)

```

'DETTA ÄR KODEN FÖR NÄSTA POST

SQL = "SELECT Top 1 rubrik, ID FROM TestTabell WHERE ID> " & Request("ID")
SQL = SQL & " Order by ID Desc"
Set RS = Connection.Execute(SQL)

a href = visa.asp?id=<%= rs("ID")%>><%= RS("Rubrik")%></a>
```

\----

```

'DETTA ÄR KODEN FÖR FÖREGÅENDE POST

SQL = "SELECT Top 1 rubrik, ID FROM TestTabell WHERE ID< " & Request("ID")
SQL = SQL & " Order by ID Desc"
Set RS = Connection.Execute(SQL)

a href = visa.asp?id=<%= rs("ID")%>><%= RS("Rubrik")%></a>
```

Ungefär sådär.

\[Redigerat av Pudolf den 26 jul 2000\]

Permalänk: https://www.webforum.nu/p/244776

## #11 — cf, 2000-07-26T16:08Z

Så här blir första kodsnutten. Motsvarande för föregående post.

```
'DETTA ÄR KODEN FÖR NÄSTA POST
<% 
SQL = "SELECT Top 1 rubrik, ID FROM TestTabell WHERE ID> " & Request("ID")
SQL = SQL & " Order by ID Desc"
Set RS = Connection.Execute(SQL)

if not RS.eof then %>
<a href = "visa.asp?id=<%= rs("ID")%>"><%= RS("Rubrik")%></a>
<%end if%>
```

Hmm... Du bör nog använda olika recordsets för säkerhets skull RS1, RS2, RS3... Glöm inte att stänga alla databasanslutningar efter dig.

\[Redigerat av cf den 26 jul 2000\]

Permalänk: https://www.webforum.nu/p/244777

## #12 — Pudolf, 2000-07-27T10:16Z

halloj cf!

koden fungerar finfint!
iaf för "föregående post"
men nästa post-koden. visar av någpon konstig anledning alltid den senaste posten? den sista?

vad är fel?

tacksam för svar!

Permalänk: https://www.webforum.nu/p/244778

## #13 — cf, 2000-07-27T11:01Z

Prova att ta bort Desc efter ORDER BY i SQL-frågan för nästa post.
Så att det blir:

```
SQL = "SELECT Top 1 rubrik, ID FROM TestTabell WHERE ID> " & Request("ID")
SQL = SQL & " Order by ID"
```

Då borde det funka

Permalänk: https://www.webforum.nu/p/244779

## #14 — Pudolf, 2000-07-27T12:24Z

Att det var så lätt :-)

TACK cf!

allting fungerar som det ska nu!

Permalänk: https://www.webforum.nu/p/244780

---

Tråden på webben: https://www.webforum.nu/amne/asp/6131-visa-kommande-post-och-posten-innan
