webForumDet fria alternativet

Föregående/nästa (paging)

ASP

4 svar · 679 visningar · startad av M.Cheraghi

Medlem sedan juli 20015 107 inlägg
Frågan#1

Halloj.

Håller på att försöka bygga upp ett enkelt fotoalbum, med en enkel paging. Dvs bara Föregående/nästa inte en massa sidnummer.

har kommit så långt att jag plockar ut 9st, men vet inte hur jag ska göra för att när man tryckt "nästa" att den ska plocka 10-18 osv. Någon som kan ge mig en fingervisning åt rätt rätt håll?

<%

strSQL = "SELECT * FROM tblFlog ORDER BY clmId DESC"
SET RS = Conn.execute(strSQL)

intCell = 1
intPictures = 1

Response.Write "<table width=""760""><tr>"

While Not RS.EOF AND intPictures < 9
  Response.Write "<td><img src=""upload/" & RS("clmId") & "_thumb.jpg"" alt=""""></td>"

  RS.MoveNext

  If intCell Mod 9 = 0 And Not RS.EOF Then
    Response.Write "</tr><tr>"

    intCell = 1
  Else
    intCell = intCell + 1
    intPictures = intPictures + 1
  End If
Wend

Response.Write "</tr></table>"

If not RS.EOF then
	response.write "det finns mer"
Else
	response.write "det är över nu"
End if

%>
Medlem sedan dec. 2006608 inlägg
#2

Ett pek i rätt riktning:
Loopa bort det antal inlägg som inte ska skrivas ut.

antal_inlägg_per_sida * (Den_sidan_du_är_på - 1)

T ex om du är på första sidan:
9*(1-1) = 0

Är du på sidan tre:
9*(3-1) = 18

Sen skriver du ut de 9 inläggen som kommer efter det.

Medlem sedan juli 20015 107 inlägg
#3

Halloj. har provat lite grann, men jag lyckas inge vidare.. =/ Klickar jag på nästa så får jag ut exakt samma poster tills jag gått igenom alla poster.

Och föregående länken slutar aldrig vara aktiv, utan den bara matar ner på minus utan att hejda sig.

<%
If request.querystring <> "" then
	pagenumber = request.querystring("pagenumber")
else
	pagenumber = 1
End if

strPosts = 9 * (pagenumber - 1)

strSQL = "SELECT * FROM tblFlog WHERE clmId > "& strPosts &" ORDER BY clmId DESC"
SET RS = Conn.execute(strSQL)

intCell = 1
intPictures = 1

Response.Write "<ul>"

While Not RS.EOF AND intPictures < 9
  Response.Write "<li>"
  Response.write "<img src=""upload/" & RS("clmId") & "_thumb.jpg"" alt="""">"
  Response.write "</li>"

  RS.MoveNext

  If intCell Mod 9 = 0 And Not RS.EOF Then
    Response.Write "</ul><ul>"

    intCell = 1
  Else
    intCell = intCell + 1
    intPictures = intPictures + 1
  End If
Wend

Response.Write "</ul>"

If not RS.EOF then
	strNext = "<a href=""default.asp?nav=showall&pagenumber=" & pagenumber + 1 & """>Nästa</a>"
Else
	strNext = "Nästa"
End if

If not RS.BOF then
	strPrev = "<a href=""default.asp?nav=showall&pagenumber=" & pagenumber - 1 & """>Föregående</a>"
Else
	strPrev = "Föregående"
end if

	response.write strNext & "<Br />"
	response.write strPrev & "<Br />"

%>
Medlem sedan dec. 2006608 inlägg
#4

Så här har jag gjort en gång:

	c_pageSize = 15

	'Räknar antalet inlägg i databasen
	SQL = "Select Count(*) AS int_count FROM t_release"
	set rec_count = DB.execute(SQL)
	
	'Beräknar hur många sidor det blir 
	v_total = rec_count("int_count")
	v_pages = Fix(v_total/c_pageSize)
	if not v_pages = (v_total/c_pageSize) then
		v_pages = Fix(v_total/c_pageSize) + 1
	end if
	
	'Kollar vilken sida som ska visas
	if not request.querystring("page") = "" then
		v_pageShow = clng(request.querystring("page"))
	else
		v_pageShow = 1
	end if

	'Om nån försöker se en sida som inte finns, så får de se sista sidan
	if v_pageShow > v_pages then
		v_pageShow = v_pages
	end if
	
	'Räknar hur många inlägg vi ska plocka ur databasen och hur många vi ska loopa bort
	v_totalShow		= v_pageShow*c_pageSize
	v_loopAway		= (v_pageShow-1)*c_pageSize

	if not v_totalShow = 0 then
		'Plockar ut riktigt antal ur databasen
		SQL = "SELECT TOP " & v_totalShow & " * FROM t_release ORDER BY f_id DESC"
		set rec_posts = DB.execute(SQL)
		
		'Loopar igenom de inlägg som inte skall skrivas ut
		v_i = 0
		do until v_i = v_totalLoop
			v_i = v_i + 1
			rec_posts.movenext
		loop
	end if

	'Skriver ut det som ska skrivas ut
	do while not rec_posts.eof
		'Skriv ut dina grejer här	
		rec_posts.movenext
	loop

Sen för att lösa länkarna till föregående/nästa sida så:
Om sidan som visas är sidan 1, 'föregående' ska inte vara en länk.
Om sidan som visas är samma som det totala antalet sidor ska 'nästa' inte vara en länk.

Hoppas det kan hjälpa dig. /Patrik

Medlem sedan juni 200032 967 inlägg
#5

Vad är det för fel på ett vanligt pagingscript?
Låt ADO sköta sidhanteringen - det är inga problem att få till länkarna som man vill ha dem.

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)