Hejsan! Du har inte satt intCounter till 0 (och därigenom talat om att det ska vara en int), om det nu kan vara det som spökar. Har nu testat med intCounter = 0 och det gjorde ingen skillnad :-(, > Har nu testat med intCounter = 0 och det gjorde ingen skillnad :-(, hej Varför inte: HejVad är det för fel?
Denna kod skriver ut alla posterna i databasen på första sidan, alltså inte det antal jag vill (6 st.).
Varför? Jag ser inte vad som är fel.
<code>
<%
'## -- skapa connection object och öppna databasen --
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("marin_fritid/_data/begBoat.mdb")
'## -- hur många poster ska visas per sida --
intPageSize = 6 '## -- byt ut till hur många poster du vill ska visas per sida --
'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
'## -- kontrollera så att inte intPage variabeln är tom --
If intPage = "" Then intPage = 1 '## -- visa första sidan som default --
'## -- sql-fråga för att hämta data från databasen --
strSQL = "SELECT ID, Filnamn, Beskrivning FROM TBL_IMAGES ORDER BY ID DESC"
'## -- skapa och öppna recordsetet --
Set objRS = Server.CreateObject("ADODB.Recordset")
With objRS
.ActiveConnection = objConn
.Source = strSQL
'## -- bestämmer hur många poster som varje sida ska bestå av i recordsetet --
.PageSize = intPageSize
.CursorType = 3
.LockType = 1
.Open
End With
'## -- kontrollera om några poster har returnerats eller inte --
If Not objRS.EOF Then
'## -- poster har returnerats --
'## -- visa rätt sida i recordsetet --
objRS.AbsolutePage = intPage
'## -- hur många sidor består recordsetet av --
intTotalPages = objRS.PageCount
'## -- visa sidnavigeringen --
'Call PageNavigation(intPage, intTotalPages)
'## -- loopa igenom recordsetet och visa posterna för besökaren/användaren --
'Do Until objRS.EOF OR intCounter >= intPageSize
'intCounter = intCounter + 1
'## -- printa ut informationen till besökare/användaren --
Numcols = 3 ' Antal kolumner i tabellen
Response.Write "<TABLE width='400' border='0' cellspacing='2' cellpadding='2'>"
Do Until objRS.EOF OR intCounter >= intPageSize
intCounter = intCounter + 1
Response.Write "<TR>"
For i=1 to Numcols
Response.Write "<TD align=""center"">"
If objRS.EOF then
Response.Write " "
Else
%>
<font face="Verdana" size="1">
<br><br><img border="0" src="../uploadedimg/<%= objRS("Filnamn") %>" width="110" height="80"><br>
<%
%>
" onMouseOver="window.status=''; return true"><%=objRS("Beskrivning") %><br></font>
<%
objRS.MoveNext
End If
Response.Write "</TD>"
Next
Response.Write "</TR>"
Loop
Response.Write "</TABLE>"
End If
'## -- rensa up --
objRS.Close
Set objRS = Nothing
objConn.Close
Set objconn = Nothing
'## -- visa sidnavigeringen --
Call PageNavigation(intPage, intTotalPages)
'## -- include filen nedan innehåller själva subrutinen för sidnavigeringen --
%>
<!--#INCLUDE FILE="inc_pagingFunction.asp"-->
</code>Sv: Vad är det för fel?
Sv: Vad är det för fel?
vet inte riktigt var i koden jag ska sätta in den, har testat på lite olika ställen.Sv: Vad är det för fel?
> vet inte riktigt var i koden jag ska sätta in den, har testat på lite olika
> ställen.
Så länge det är före loopen är det bra.
Men då kanske man måste sätta ut parenteser i testuttrycket (vet inte i vilken ordning VB-skript jobbar), alltså:
do until (objRS.EOF or (intCounter >= intPageSize))
Annars skulle jag själv gjort en for-loop som kör upp till intCounter och som innehåller en if-sats som kollar om objRS.EOF är sant och i så fall breakar.Sv: Vad är det för fel?
har testat allt möjligt nu, själva pagingen funkar, men om scriptet är inställt att visa ex. 6 poster per sida så visar han alla poster som finns i databasen.
T.ex det finns 11 poster i databasen, på första sidan visas alla 11 poster och på sidan 2 visas det 5 st.
Vet inte hur jag ska lösa detta :-(
/TomasSv: Vad är det för fel?
strSQL = "SELECT TOP 6 ID, Filnamn, Beskrivning FROM TBL_IMAGES ORDER BY ID DESC"
om du bara vill ha 6 poster?
/RickardSv: Vad är det för fel?
Jo, det kan ju funka, men jag vill ha posterna i 3 st kolumner också.