Japp det fungerade perfekt om jag la in ett "" värde i början och slutet av arrayen.
Om någon har en bättre lösning på denna typ av prev/next länkar så tar jag gärna emot den :)
4 svar · 363 visningar · startad av UrMe
Jag håller på att försöka få till Nästa/föregående länkar.. men får "Felaktigt matrisindex: '-1'" etc.
Använder ASP och Access som databas.
Jag tyckte min lösning var strålande ända tills jag får felmeddelande lite då och då, det fungerar till hälften typ :)
If Request.Querystring("id") = "" Then
set curSQL = minCon.execute("SELECT TOP 1 * FROM tabell WHERE inlagg = 'gast' ORDER BY datum DESC, idnr DESC")
set nextSQL = minCon.execute("SELECT TOP 1 * FROM tabell WHERE inlagg = 'gast' AND idnr <> "&curSQL("idnr")&" ORDER BY datum DESC, idnr DESC")
nextlinkid = nextSQL("idnr")
Else
idnu = Request.Querystring("id")
set allSQL = minCon.execute("SELECT * FROM tabell WHERE inlagg = 'gast' ORDER BY datum DESC, idnr DESC")
i = 0
Do until allSQL.EOF
Redim Preserve inlaggid(i)
inlaggid(i) = allSQL("idnr")
i = i + 1
allSQL.MoveNext
Loop
allSQL.close
set curSQL = minCon.execute("SELECT * FROM tabell WHERE inlagg = 'gast' AND idnr = "&idnu&"")
For j = 0 to ubound(inlaggid)
If inlaggid(j) = curSQL("idnr") Then
nextlinkid = inlaggid(j+1)
prevlinkid = inlaggid(j-1)
End If
Next
End If
Sedan skriver jag ut next och prev länkarna:
<%
If prevlinkid <> "" Then
Response.Write "<a href=""index.asp?id="&prevlinkid&""">« Föregående</a>"
End If
If nextlinkid <> "" Then
Response.Write "<a href=""index.asp?id="&nextlinkid&""">Nästa »</a>"
End If
%>
Felmeddelandet jag får är på Rad 26 vilket är:
Felaktigt matrisindex: '-1'
nextlinkid = inlaggid(j+1)
EDIT: Kom jag på att jag får ju det för att det arrayen blir typ tom då ju.. hmm kanske kan fylla sista och första med NULL bara?
Japp det fungerade perfekt om jag la in ett "" värde i början och slutet av arrayen.
Om någon har en bättre lösning på denna typ av prev/next länkar så tar jag gärna emot den :)
En helt annan sak:
Do until allSQL.EOF
Redim Preserve inlaggid(i)
inlaggid(i) = allSQL("idnr")
i = i + 1
allSQL.MoveNext
Loop
Aj! det där tror jag kan göra ont på server ;)
Aj det lät int ebra :) hur ska man skriva om den då?
Du kan använda GetRows och få allt till en Array direkt. Sedan har du UBound för att kolla hur många element du har.