webForumDet fria alternativet

Visa kommande post och posten innan

ASPur ASP

13 svar · 184 visningar · startad av Pudolf

Medlem sedan juli 2000221 inlägg
Frågan#1

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!

Medlem sedan maj 2000376 inlägg
#2

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]

Medlem sedan juli 2000221 inlägg
#3

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!

Medlem sedan dec. 19996 721 inlägg
#4

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]

Medlem sedan maj 2000376 inlägg
#5

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

Medlem sedan dec. 19996 721 inlägg
#6

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"

------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB

Medlem sedan maj 2000376 inlägg
#7

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

Medlem sedan juli 2000221 inlägg
#8

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]

Medlem sedan maj 2000376 inlägg
#9

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]

Medlem sedan juli 2000221 inlägg
#10

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]

Medlem sedan maj 2000376 inlägg
#11

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]

Medlem sedan juli 2000221 inlägg
#12

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!

Medlem sedan maj 2000376 inlägg
#13

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

Medlem sedan juli 2000221 inlägg
#14

Att det var så lätt :-)

TACK cf!

allting fungerar som det ska nu!

139 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)