webForumDet fria alternativet

Pagingfråga

ASP

6 svar · 221 visningar · startad av Fishermen

Medlem sedan nov. 200112 inlägg
Frågan#1

Hej

Har knåpat ihop ett bildgalleri där jag använder aspsmartupload och aspimage. Bilderna lagras endast som namn i databasen.

Databasen innehåller följande:
id
filnamn
kategori
beskrivning

Allt fungerar alldeles utmärkt men nu undrar jag hur jag skall få till pagingen på dessa sidor.

Allt fungerar på så sätt att jag har gjort en inloggningsida som om allt är Ok skickar mig vidare till en inmatningssida.
Där skriver jag in en kategori som jag vill ha och en beskrivning på bilden samt laddar upp en bild.

Sidan som visar bilderna i speciell kategori skapas alltså automatiskt. Väljer jag en ny kategori så skapas även den direkt på sidan.

som jag tidigare sagt funkar allt som det ska men jag skulle vilja ha paging på sidorna. Jag har testat med olika pagingscript men får det inte att fungera.

Så här ser koden ut som visar en speciell sida:

<!-- #include file="adovbs.inc" -->
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "databasen"

Set rs = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM galleri WHERE kategori = '" & Trim(Request.QueryString("id")) & "' ORDER BY id DESC"
rs.Open Visa, Connect, adOpenStatic, adLockOptimistic %>

<table width="500" border="0" cellspacing="0" cellpadding="0" align="center">

<% n = 5
do until rs.eof
if n = 5 then
response.write "</tr><tr>"
n = 0
end if
n = n + 1 %>

<td valign="top"><font face="verdana, arial" size="1" color="#DDDDDD"><b>
<a href="showpic.asp?<%=("id=" & Server.URLEncode(rs("id")))%>"><img src="http://www.internetsidan.com/bildgalleri/images/\<%= rs("filnamn") %>" bordercolor="#FFFFFF" border=1 alt="<%= rs("beskrivning") %>"></a><br><br>
</b></font></td>

<%
rs.movenext
loop
%>

<br>
</table>

<% rs.Close
set rs=nothing
connect.close
set connect=nothing %>

Sidan lägger alltså upp 5 st bilder bredvid varandra och gör automatiskt en ny rad med 5 st nya bilder.
Frågan lyder alltså:
Säg att jag vill visa 5 rader med 25 st bilder och sen vill jag kunna gå till nästa sida. Jag har kört fast och vore tacksam med lite tips.

För er som vill se galleriet i action gå in på:
http://www.topofeurope.com/sm2kal/bildgalleri/bildgalleri.asp

Hoppas på svar

Micke

Medlem sedan apr. 20003 174 inlägg
#2

En variant på paging hittar du här:
http://www.webforum.nu/showthread.php?s=&threadid=76181&forumid=148

Tips:
  Använd gärna [kod]-taggarna när du visar kod här på wF. :)

Medlem sedan nov. 200112 inlägg
#3

pagingfrågan

OK

Sorry för koden, har inte gjort så många inlägg tidigare så man glömmer bort sig. Är en riktig hemmaknackare...

hihi

Medlem sedan nov. 200112 inlägg
#4

Pagingfrågan

Tack för inlägget Palle

skall ta mig en titt på det.
Problemet är alltså att det blir galet mellan kolumner och sidor...

Medlem sedan apr. 20003 174 inlägg
#5

Hade inget bättre för mig.. så jag knåpade ihop ett litet pagingsystem åt dig.
Hur fungerar detta?

[red]<% 

intQueryID = trim(Request.QueryString("id"))

Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "databasen"

		Set rs = Connect.Execute("SELECT id, filnamn, beskrivning FROM galleri WHERE kategori='"& intQueryID &"' ORDER BY id DESC"
			If NOT rs.EOF Then arrRecSet = rs.GetRows()
		rs.Close : Set rs = Nothing

	Connect.Close
Set Connect = Nothing

If IsArray(arrRecSet) Then

	Response.Write ""&_
	"<table width=""500"" border=""0"" cellspacing=""0"" cellpadding=""0"" align=""center"">"&_
	"<tr>"

	intPostsPerPage = 25
	If Len(trim(Request.Querystring("n"))) > 0 Then intPage = cInt(trim(Request.Querystring("n"))) Else intPage = 1
	intFirstPost = (intPage - 1) * intPostsPerPage
	intTotalPosts = UBound(arrRecSet, 2)
	intPages = ((intTotalPosts)\intPostsPerPage)+1

	If intFirstPost + (intPostsPerPage - 1) >= UBound(arrRecSet,2) Then
		intLastPost = UBound(arrRecSet, 2) 
	Else
		intLastPost = intFirstPost + (intPostsPerPage - 1)
		strNext = True
	End If

	'// Skriv ut posterna
	For i = intFirstPost To intLastPost

		intID = arrRecSet(0,i)
		strBild = arrRecSet(1,i)
		strBeskrivning = arrRecSet(2,i)

		Response.Write ""&_
		"<td valign=""top""><font face=""verdana, arial"" size=""1"" color=""#DDDDDD""><b>"&_
		"<a href=""showpic.asp?id="& intID &"""><img src=""http://www.internetsidan.com/bildgalleri/images/"& strBild &""" bordercolor=""#FFFFFF"" border=""1"" alt="""& strBeskrivning &"""></a><br><br>"&_
		"</b></font></td>"
		If cInt(i+1) Mod 5 = 0 Then Response.Write "<tr></tr>"

	Next

	Response.Write ""&_
	"</tr>"&_
	"</table>"&_
	
	"<table width=""500"" border=""0"" cellspacing=""0"" cellpadding=""0"" align=""center"">"&_
	"<tr>"&_
	"<td>"
	
		If intPage > 1 Then
			Response.Write ""& vbcrlf &"	<a href=""showpic.asp?id="& intQueryID &"&n="" >Första</a> | <a href=""showpic.asp?id="& intQueryID &"&n="& intPage - 1 &""">Backa</a> | "
		Else 
			Response.Write ""& vbcrlf &"	Första | Backa | "
		End If

		If intTotalPosts > intPostsPerPage Then 

			If intPage < 4 Then
				intNavStart = 1 : intNavEnd = 5
			ElseIf intPage > intPages-3 Then
				intNavStart = intPages-4 : intNavEnd = intPage+2
			Else
				intNavStart = intPage-2 : intNavEnd = intPage+2
			End If

			For n = intNavStart To intNavEnd
				If intPage = n Then 
					Response.Write "<strong>"& n &"</strong> | "
				Else 
					Response.Write "<a href=""showpic.asp?id="& intQueryID &"&n="& n &""">"& n &"</a> | "
				End If
			If n = intPages Then Exit For
			Next 

		End If

		If strNext = True Then 
			Response.Write "<a href=""showpic.asp?id="& intQueryID &"&n="& intPage + 1 &""">Nästa</a> | <a href=""showpic.asp?id="& intQueryID &"&n="& intPages &""">Sista</a>"& vbcrlf
		Else 
			Response.Write "Nästa | Sista"& vbcrlf
		End If

	Response.Write ""&_
	"</td>"&_
	"</tr>"&_
	"</table>"

%>[/red]
Medlem sedan nov. 200112 inlägg
#6

Pagingen funkar klockrent

Tackar och bockar Palle...

Grymt imponerad, scriptet funkar ju klockrent...

Ni på Webforum är guld värda...

Medlem sedan apr. 20003 174 inlägg
#7

Inga problem, trevligt att det fungerade med en gång. :bire

275 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
134 ms — ändringar (db)