webForumDet fria alternativet

Paging strul

5 svar · 236 visningar · startad av Melea

MeleaMedlem sedan juli 20033 147 inlägg
#1

Hejsan! :)

Har ett litet problem med mitt paging system. Det funkar felfritt och så men det visar en sida för mycket.

Ska förklara mig bättre...

När jag har loopat ut alla poster ur min databas och sedan vill ha stopp på 15 poster så [1] - 2 - 3 - 4 etc. kommer upp. Om jag då trycker på det sista numret (i detta fallet fyran) så är den sidan tom.

Såhär ser koden ut:

<%
Dim Conn, MySQL, iRecords, iPageSize, iPages, iPage, iStart, myArray, i, RecSet

MySQL = "SELECT COUNT(*) AS recordCount "
MySQL = MySQL & "FROM memb_gb where userID = " & Request.Querystring("id") & " " 

Set RecSet = Conn.Execute(MySQL)
iRecords = RecSet("recordCount")

RecSet.Close
Set RecSet = Nothing

iPageSize = 15

iPages = int(iRecords / iPageSize) +1

iPage = Request.QueryString("pg")
If iPage = "" Or Not isNumeric(iPage) Then
	 iPage = 1
Else
	 iPage = int(iPage)
End If

iStart = iPage * iPageSize
iStart = iStart - iPageSize

MySQL = "SELECT * "
MySQL = MySQL & "FROM memb_gb where userID = " & Request.Querystring("id") & " " 
MySQL = MySQL & "LIMIT " & iStart & " ," & iPageSize & " "
Set RecSet = Conn.Execute(MySQL)

Do Until RecSet.EOF%>

Loopar allt som ska loopas :)

<%RecSet.Movenext
Loop%>

<br>

<%MySQL = "SELECT * FROM memb_memb where ID = " & Request.Querystring("id") & " " 
Set RecSet = Conn.Execute(MySQL)%>

<%
If iPages > 1 Then

	For i = 1 To iPages
		 If i = iPage Then
			  Response.Write("<B>[" & i & "]</B>")
		 Else
			  Response.Write("&nbsp;<A href=""?ID=" & RecSet("ID") & "&pg=" & i & """>")
			  Response.Write(i)
			  Response.Write("</A>&nbsp;")
		 End If
	next

End If
%>

Hittar inte felet =(

Tacksam för svar!

MVH

PatrikBMedlem sedan mars 20002 836 inlägg
#2

Hur har du felsökt?
har du kontrollerat hur många records som kommer tillbaka och på så sätt själv räkna ut att sidorna stämmer?

skriv ut de olika värdena som:

Antal records.
Antal sidor.

Kontrollera som sagt sedan om det stämmer eller inte .....

Tror att det är att du lägger på "en sida för mycket" vid uträkningen av antal sidor.

cya,
/PatrikB

MeleaMedlem sedan juli 20033 147 inlägg
#3

Hehe så dumt av mig :D

Det var iPages = int(iRecords / iPageSize) +1 som strulade till det.

MVH

MeleaMedlem sedan juli 20033 147 inlägg
#4

Har dock ett annat problem som är onödigt att skapa ny topic för :)

Jag tänkte kolla av de senaste inloggade och skrev såhär:

<%
MySQL = "SELECT * FROM memb_memb order by senast_inloggad desc"
Set RecSet = Conn.Execute(MySQL)

For i = 1 to 5
If RecSet.EOF Then Exit For

RecSet("username")

RecSet.Movenext
Next
%>

Men jag får felet:

Feltyp:
Körningsfel i Microsoft VBScript (0x800A01C2)
Fel antal argument eller felaktig egenskapstilldelning.: 'RecSet'

Why?!? :D

MVH

PatrikBMedlem sedan mars 20002 836 inlägg
#5

varför plocka ut alla records när du endast behöver de fem senaste?

<%
MySQL = "SELECT * FROM memb_memb order by senast_inloggad desc LIMIT 0,5"
Set RecSet = Conn.Execute(MySQL)

While Not RecSet.EOF

Response.Write RecSet("username")

RecSet.Movenext
Wend
%>

cya,
/PatrikB

MeleaMedlem sedan juli 20033 147 inlägg
#6

Man tackar :)

Körde med Do Until RecSet.EOF istället för While förut när jag prövade Limit.

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