webForumDet fria alternativet

Implementering av paging

28 svar · 603 visningar · startad av WebbisNet

WebbisNetMedlem sedan feb. 20032 027 inlägg
#1

Min kod till att läsa gästbiken är

<body class=background>
<div class=shadow3>
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
	<tr>
		<td>
		<center>
		<!-- Start of main table -->

<table class=table-bg width="60%" height="100%" border="0" cellspacing="0" cellpadding="0">
  	<tr>
    		<td valign="top">
		<!-- Start of logotype -->
		<!-- #include file="../Include/inc-ad.asp" -->	
		<!-- End of logotype -->
		</td>
  	</tr>
	<tr>
		<td valign="top">
		<!-- Start of menu -->
<br><br>
		<!-- #include file="../inc-menu.asp" -->	
		<!-- End of menu -->
<br>
		</td>
	</tr>
	<tr>
		
		<td class=Text1 colspan=2 valign=top width="50%" height="15%">

<center>Inlägg i gästboken på webbisen.com</center>

		</td>
		</tr>
		<tr>
		<td valign=top><br>

<table width="100%" height="300" border="0">
<tr>
<td valign="top">

<%
'## -- hämta alla poster --
Function getRecords
	Dim conn
	Dim connstr
	Dim SQL
	Dim RS
	Dim m_arrRecords
	
connstr=("Driver={mySQL};Server=localhost;Port=3306;Option=131072;Stmt=;Database=xxxxxxxxx;Uid=xxxxxxxxx;Pwd=xxxxxx;")
			
'## -- sql-fråga för att hämta alla poster --
'## -- denna ska du ändra så att den stämmer
'##    med det som du vill hämta --
SQL = "SELECT * FROM gastbok ORDER BY Datum DESC"
set conn = Server.CreateObject("ADODB.Connection")
conn.Open connstr
'## -- recordset för att hämta alla poster --
Set RS = Conn.Execute(SQL)
If Not RS.EOF Then
m_arrRecords = RS.GetRows
getRecords = m_arrRecords	
End If				
'## -- clean up --		
RS.Close
		
Set RS = Nothing		
		
conn.Close
	Set conn = Nothing
End Function

Do until RS.EOF
%>
<center>

<table>
<tr>
<td>
<table class=table width="570" border=0 cellpadding=3 cellspacing=0>
<tr>
<td colspan=2 bgcolor=#000099 width="100%">
<div class=gb1> Insänt: <%=RS("Datum")%> från IP: <%=RS("IP")%> av <%=RS("Namn")%></div>
</td>
<tr>
<td bgcolor=#000099 width="50%">
<div class=gb1>Mail:&nbsp;</div> <a class=gb1 href="mailto:<%=RS("Epost")%>?subject=Svar från gästboken på webbisen.com"> <%=RS("Epost")%></a>
</td>
<td bgcolor=#000099 width="50%">		  
<div class=gb1>Webb:&nbsp;</div> <a class=gb1 target='_blank' href="<%=RS("Hemsida")%>"> <%=RS("Hemsida")%></a>
</td>
</tr>
<tr>
<td colspan=2 bgcolor=#FFE600 width="100%">
<div class=gb2><%=RS("Meddelande")%>
 </div>
</td>
</tr>
</table>

</td>
</tr>
</table>
</center>

<%
RS.MoveNext
Loop
%>

</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
	</tr>					
</table>
		<!-- End of main table -->
		</center>
		</td>
	</tr>
</table>
</div>
</body>

vet nån hur man implementerar resten av pagingkoden?

<%

	'## -- skriver ut sidnavigeringen --
	'## -- skriv ut föregående sida --
Sub PrevPage(ByVal WichPage)
	Dim strScriptName
	strScriptName = Request.ServerVariables("SCRIPT_NAME")

	'## -- skriv ut en länk till föregående sida --
	If CInt(WichPage) > 1 Then
		Response.Write "<A href='" & strScriptName & "?" & _
			"page=" & WichPage - 1 & "'><< Föregående</A> "
	Else
		Response.Write "<< Föregående "
	End If
End Sub

	'## -- skriv ut nästa sida --
Sub NextPage(ByVal HowManyPages, ByVal WichPage)
	Dim strScriptName
	strScriptName = Request.ServerVariables("SCRIPT_NAME")
	
	'## -- skriv ut en länk till nästa sida --
	If CInt(WichPage) < CInt(HowManyPages) Then
		Response.Write "<A href='" & strScriptName & "?" & _
			"page=" & WichPage + 1 & "'>Nästa >></A>"
	Else
		Response.Write " Nästa >>"
	End If

End Sub

	'## -- skriv ut sidnummer navigeringen --
Sub PageNumbers(ByVal HowManyPages, WichPage)
	Dim strScriptName
	Dim I
	
	'## -- kolla om det finns några sidor --
	If HowManyPages = 0 Then
		Response.Write "0"
		Exit Sub
	End If
	
	strScriptName = Request.ServerVariables("SCRIPT_NAME")

	'## -- skriv ut länkar till sid nummer n. 
	'##    Den sida som visas ska ej vara länkad --
	For I = 1 To HowManyPages
		If CInt(I) <> CInt(WichPage) Then
			Response.Write "<A href='" & strScriptName & "?" & _
				"page=" & I & "'>" & I & "</A> "
		Else
			Response.Write "<B>" & I & "</B> "
		End If
	Next

End Sub

'## -- vilken post ska pagingen börja på --
Function getStartID(ByVal PageSize, ByVal ViewPage) ' As Integer
	Dim m_intStart
	m_intStart = ((PageSize * ViewPage) - PageSize)
	getStartID = m_intStart
End Function

Function countPages(ByVal HowManyRecords, ByVal PageSize)
	Dim m_intTotalPages, m_intRest

	m_intTotalPages = HowManyRecords / PageSize

	If m_intTotalPages < 1 Then
		m_intTotalPages = 1
	Else
		m_intRest = m_intTotalPages - CLng(m_intTotalPages)
		
		If m_intRest > 0 AND m_intRest < 0.5 Then
			m_intTotalPages = CLng(m_intTotalPages) + 1
		Else
			m_intTotalPages = CLng(m_intTotalPages)
		End If
	End If

	'## -- return how many pages --
	countPages = m_intTotalPages
End Function

'##***********************************************************************************

Dim arrRecords
Dim intPageSize
Dim intPage
Dim intStartID
Dim I
Dim intId
Dim strNamn
Dim dteDatum
Dim intTotalPages
Dim intTotalRecords

'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
If intPage = "" Then intPage = 1

'## -- hur många poster ska visas per sida --
intPageSize = 3

'## -- hämta alla records, hämtas med metoden getrows och returneras 
'##    som en array. --
arrRecords = getRecords

'## -- vilken post är den första --
intStartID = getStartID(intPageSize, intPage)

'## -- printa ut sidan som ska visas
'##    alla poster finns i arrayen arrRecords som
'##    kommer från funktionen getRecords --
If IsArray(arrRecords) Then
	'Response.Write "E ju en array<BR>"
	'## -- hur många records finns det totalt --
	intTotalRecords = UBound(arrRecords,2) + 1
	
	'## -- hur många sidor finns det i recordsetet --
	intTotalPages = countPages(intTotalRecords, intPageSize)

	Response.Write "<P>Visar nu sida <B>" & intPage & "</B> av " & intTotalPages & "</P>"
	For I = intStartID To ((intStartID + intPageSize) -1)
	
		'intId = arrRecords(0,I)
		'strNamn = arrRecords(1,I)
		'dteDatum = arrRecords(2,I)
		
		'Response.Write " Datum: " & Namn & " Namn: " & IP & "<BR>"
		
		If I = UBound(arrRecords,2) Then Exit For
	Next
Else
	'## -- inga poster fanns i db --
	intPage = 0
	intTotalRecords = 0
	intTotalPages = 0
	
	'## -- skriv ut att inga poster hittades --
	Response.Write "<P>No records found.</P>"
End If

'## -- skriv ut sidnavigerings menyn --
Call PrevPage(intPage)
Response.Write " | "

Call NextPage(intTotalPages,intPage)

Response.Write "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pages: "

Call PageNumbers(intTotalPages,intPage)
%>
PatrikBMedlem sedan mars 20002 836 inlägg
#2

En liten fråga.

Kör du med ChilliASP eller kör du på en IIS-server?

Kör du på en IIS-server så rekomenderar jag en vanlig RecordSet-paging istället för denna.

Denna paging gjorde jag till en kille som körde på ChilliASP och hade problem med Recordset-paging (kanske har ändrats då kodenn är rätt gammal).

cya,
/PatrikB

PatrikBMedlem sedan mars 20002 836 inlägg
#3

En liten fråga till.

Vad händer när du kör denna kod?
Ev. felmeddelande skulle vara bra att se.

Men, den loopen du har är helt ointressant då den lyder:

Do Until RS.EOF

Denna paging hämtar alla records med funktionen: getRecords och som returnerar en 2-dimensionell array.
Längre ned i koden så ser du utloopningen av de returnerade posterna.
Det du behöver göra är att ändra connectionstringen OCH sql-frågan så att de stämmer överens med din tabell i databasen.

Det du vill göra, mitt antagande, är att få in din design i koden och det gör du efter detta:

'## -- printa ut sidan som ska visas
'##    alla poster finns i arrayen arrRecords som
'##    kommer från funktionen getRecords --
If IsArray(arrRecords) Then
	'Response.Write "E ju en array<BR>"
	'## -- hur många records finns det totalt --
	intTotalRecords = UBound(arrRecords,2) + 1
	
	'## -- hur många sidor finns det i recordsetet --
	intTotalPages = countPages(intTotalRecords, intPageSize)

	Response.Write "<P>Visar nu sida <B>" & intPage & "</B> av " & intTotalPages & "</P>"
	For I = intStartID To ((intStartID + intPageSize) -1)

Det är här, For I = intStartID .... som själva utloopningen av posterna börjar.

Lite mer info, så löser vi detta relativt snabbt :e

cya,
/PatrikB

WebbisNetMedlem sedan feb. 20032 027 inlägg
#4

PatrikB skrev:

En liten fråga till.

Vad händer när du kör denna kod?
Ev. felmeddelande skulle vara bra att se.

Men, den loopen du har är helt ointressant då den lyder:

Do Until RS.EOF

Denna paging hämtar alla records med funktionen: getRecords och som returnerar en 2-dimensionell array.
Längre ned i koden så ser du utloopningen av de returnerade posterna.
Det du behöver göra är att ändra connectionstringen OCH sql-frågan så att de stämmer överens med din tabell i databasen.

Det du vill göra, mitt antagande, är att få in din design i koden och det gör du efter detta:

'## -- printa ut sidan som ska visas
'##    alla poster finns i arrayen arrRecords som
'##    kommer från funktionen getRecords --
If IsArray(arrRecords) Then
	'Response.Write "E ju en array<BR>"
	'## -- hur många records finns det totalt --
	intTotalRecords = UBound(arrRecords,2) + 1
	
	'## -- hur många sidor finns det i recordsetet --
	intTotalPages = countPages(intTotalRecords, intPageSize)

	Response.Write "<P>Visar nu sida <B>" & intPage & "</B> av " & intTotalPages & "</P>"
	For I = intStartID To ((intStartID + intPageSize) -1)

Det är här, For I = intStartID .... som själva utloopningen av posterna börjar.

Lite mer info, så löser vi detta relativt snabbt :e

cya,
/PatrikB

När jag tog bort loopen fick jag

Insänt: 
Microsoft VBScript runtime error '800a000d' 

Type mismatch: '[undefined]' 

/Gastbok/default.asp, line 167

rad 167 och lite framåt är

<td colspan=2 bgcolor=#000099 width="100%">
<div class=gb1> Insänt: <%=RS("Datum")%> från IP: <%=RS("IP")%> av <%=RS("Namn")%></div>
</td>
<tr>
<td bgcolor=#000099 width="50%">
<div class=gb1>Mail:&nbsp;</div> <a class=gb1 href="mailto:<%=RS("Epost")%>?subject=Svar från gästboken på webbisen.com"> <%=RS("Epost")%></a>
</td>
<td bgcolor=#000099 width="50%">		  
<div class=gb1>Webb:&nbsp;</div> <a class=gb1 target='_blank' href="<%=RS("Hemsida")%>"> <%=RS("Hemsida")%></a>
</td>
</tr>
<tr>
<td colspan=2 bgcolor=#FFE600 width="100%">
<div class=gb2><%=RS("Meddelande")%>

och jag har inte fått MySQL att funka på min dator så jag skickar upp filerna direkt till servern som kör chilliasp

PatrikBMedlem sedan mars 20002 836 inlägg
#5

Det är dessa du inte kan ha, <% =RS("Datum")%> etc

Om du tar bort alla dina <% =RS("?????")%>, funkar det då?

cya,
/PatrikB

WebbisNetMedlem sedan feb. 20032 027 inlägg
#6

PatrikB skrev:

Det är dessa du inte kan ha, <% =RS("Datum")%> etc

Om du tar bort alla dina <% =RS("?????")%>, funkar det då?

cya,
/PatrikB

men om jag tar bort dem, hur ska jag då kunna visa något från databasen

Fredde MannenMedlem sedan nov. 20014 054 inlägg
#7

Jag är inte 100% säker på ASP men;

Function getRecords
	Dim conn
	Dim connstr
	Dim SQL
	Dim RS
	Dim m_arrRecords
	
connstr=(" Driver={mySQL};Server=localhost;Port=3306;Option=131072;Stmt
=;Database=xxxxxxxxx;Uid=xxxxxxxxx;Pwd=xxxxxx;")
			
'## -- sql-fråga för att hämta alla poster --
'## -- denna ska du ändra så att den stämmer
'##    med det som du vill hämta --
SQL = "SELECT * FROM gastbok ORDER BY Datum DESC"
set conn = Server.CreateObject("ADODB.Connection")
conn.Open connstr
'## -- recordset för att hämta alla poster --
Set RS = Conn.Execute(SQL)
If Not RS.EOF Then
m_arrRecords = RS.GetRows
getRecords = m_arrRecords	
End If				
'## -- clean up --		
RS.Close
		
Set RS = Nothing		
		
conn.Close
	Set conn = Nothing
End Function

I den stänger du recordset och efter

detta så kör du Do Until RS.Eof, RS("Datum") osv. känns som att man skall städa upp efter att man har ropat RS("Datum") osv...

bara undrar...

solbulleMedlem sedan mars 20015 287 inlägg
#8

Du har iom det där scriptet lagt hela ditt rs i en array. Du hämtar posterna som i exemplet i scriptet du själv postat:

'intId = arrRecords(0,I)
		'strNamn = arrRecords(1,I)
		'dteDatum = arrRecords(2,I)
		
		'Response.Write " Datum: " & Namn & " Namn: " & IP & "<BR>"

(Du får givetvis ta bort utkommenteringarna.

Om du ändrar din sqlsats:
SQL = "SELECT * FROM gastbok ORDER BY Datum DESC"

Till att skriva vilka fält du ska hämta ser du lättare vilken ordning dom får i din array sen.

'...
SQL = "SELECT Namn, epost, datum, meddelande FROM gastbok ORDER BY Datum DESC"
'...
strNamn = arrRecords(0,I
strepost = arrRecords(1,I)
strdatum = arrRecords(2,I)
WebbisNetMedlem sedan feb. 20032 027 inlägg
#9

Jag har 8 poster, den hittar bara 6 och den delar inte upp sidorna

<%
Function getRecords
	Dim conn
	Dim connstr
	Dim SQL
	Dim RS
	Dim m_arrRecords
		
		Set conn = Server.CreateObject("ADODB.Connection")
		connstr = ("Driver={mySQL};Server=localhost;Port=3306;Option=131072;Stmt=;Database=xxxxxxxxxx;Uid=xxxxxxxxxxx;Pwd=xxxxxxxxxx;")
		conn.Open connstr		
		SQL = "SELECT Namn, Epost, Datum, Meddelande, IP FROM gastbok ORDER BY Datum DESC"
		Set RS = conn.Execute(SQL)
			
				If Not RS.EOF Then
					m_arrRecords = RS.GetRows
					getRecords = m_arrRecords
				End If

				
		RS.Close
		Set RS = Nothing		
		conn.Close
		Set conn = Nothing
End Function

	'## -- skriver ut sidnavigeringen --
	'## -- skriv ut föregående sida --
Sub PrevPage(ByVal WichPage)
	Dim strScriptName
	strScriptName = Request.ServerVariables("SCRIPT_NAME") & "?View=read"

	'## -- skriv ut en länk till föregående sida --
	If CInt(WichPage) > 1 Then
		Response.Write "<a href=""" & strScriptName & "&page=" & WichPage - 1 & """><< Föregående</A> "
	Else
		Response.Write "<< Föregående "
	End If
End Sub

	'## -- skriv ut sidnummer navigeringen --
Sub PageNumbers(ByVal HowManyPages, WichPage)
	Dim strScriptName
	Dim I
	
	'## -- kolla om det finns några sidor --
	If HowManyPages = 0 Then
		Response.Write "0"
		Exit Sub
	End If
	
	strScriptName = Request.ServerVariables("SCRIPT_NAME") & "?View=read"

	'## -- skriv ut länkar till sid nummer n. 
	'##    Den sida som visas ska ej vara länkad --
	For I = 1 To HowManyPages
		If CInt(I) <> CInt(WichPage) Then
			Response.Write "<a href=""" & strScriptName & "&page=" & WichPage + 1 & """>" & I & "</A> "
		Else
			Response.Write "<B>" & I & "</B> "
		End If
	Next

End Sub

	'## -- skriv ut nästa sida --
Sub NextPage(ByVal HowManyPages, ByVal WichPage)
	Dim strScriptName
	strScriptName = Request.ServerVariables("SCRIPT_NAME") & "?View=read"
	
	'## -- skriv ut en länk till nästa sida --
	If CInt(WichPage) < CInt(HowManyPages) Then
		Response.Write "<a href=""" & strScriptName & "&page=" & WichPage + 1 & """>Nästa >></A>"
	Else
		Response.Write " Nästa >>"
	End If

End Sub

'## -- vilken post ska pagingen börja på --
Function getStartID(ByVal PageSize, ByVal ViewPage) ' As Integer
	Dim m_intStart
	m_intStart = ((PageSize * ViewPage) - PageSize)
	getStartID = m_intStart
End Function

Function countPages(ByVal HowManyRecords, ByVal PageSize)
	Dim m_intTotalPages, m_intRest

	m_intTotalPages = HowManyRecords / PageSize

	If m_intTotalPages < 1 Then
		m_intTotalPages = 1
	Else
		m_intRest = m_intTotalPages - CLng(m_intTotalPages)
		
		If m_intRest > 0 AND m_intRest < 0.5 Then
			m_intTotalPages = CLng(m_intTotalPages) + 1
		Else
			m_intTotalPages = CLng(m_intTotalPages)
		End If
	End If

	'## -- return how many pages --
	countPages = m_intTotalPages
End Function

'##***********************************************************************************

Dim arrRecords
Dim intPageSize
Dim intPage
Dim intStartID
Dim I
Dim intId
Dim Datum
Dim IP
Dim Namn
Dim Epost
Dim Hemsida
Dim Meddelande
Dim intTotalPages
Dim intTotalRecords

'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
If intPage = "" Then intPage = 1

'## -- hur många poster ska visas per sida --
intPageSize = 6

'## -- hämta alla records, hämtas med metoden getrows och returneras 
'##    som en array. --
arrRecords = getRecords

'## -- vilken post är den första --
intStartID = getStartID(intPageSize, intPage)

'## -- printa ut sidan som ska visas
'##    alla poster finns i arrayen arrRecords som
'##    kommer från funktionen getRecords --
	If IsArray(arrRecords) Then
'Response.Write "E ju en array<BR>"
	'## -- hur många records finns det totalt --
	intTotalRecords = UBound(arrRecords,2) - 1
'intTotalRecords = arrRecords,2
'Response.write "poster = " & intTotalRecords 
	
	'## -- hur många sidor finns det i recordsetet --
	intTotalPages = countPages(intTotalRecords, intPageSize)

	Response.Write "<P>Visar nu sida <B>" & intPage & "</B> av " & intTotalPages & "</P>"
	For I = intStartID To ((intStartID + intPageSize) -1)
	
'Datum = arrRecords(0,I)
'IP = arrRecords(1,I)
'Namn = arrRecords(2,I)
'Epost = arrRecords(3,1)
'Hemsida = arrRecords(4,1)
'Meddelande = arrRecords(5,I)
		
		'Response.Write " Datum: " & Datum & " IP: " & IP & "Datum: " & Datum & " Epost: " & Epost & "Hemsida: " & Hemsida & " Meddelande: " & Meddelande & "<BR>"
		
		If I = UBound(arrRecords,2) Then Exit For
	Next
Else
	'## -- inga poster fanns i db --
	intPage = 0
	intTotalRecords = 0
	intTotalPages = 0
	
	'## -- skriv ut att inga poster hittades --
	Response.Write "<P>Inga poster hittades.</P>"
End If

'## -- skriv ut sidnavigerings menyn --
response.write("<table class=Text1 border=0 width='100%'><tr><td align=left width='33%'>")
Call PrevPage(intPage)
response.write("</td><td align=middle width='33%'>") 
response.write("Antal sidor: ")
Call PageNumbers(intTotalPages,intPage)
response.write("</td><td align=right width='33%'>") 
Call NextPage(intTotalPages,intPage)
response.write("</td></tr></table>") 
%>
solbulleMedlem sedan mars 20015 287 inlägg
#10

Denna rad säger att den nu bara ska visa 6poster, så det är säkert därför du baraser 6poster:

intPageSize = 6

Däremot ska ju en länk till nästa sida vara synlig...

solbulleMedlem sedan mars 20015 287 inlägg
#11

Sen är det "någon" som har varit och ändrat i denna sub.

	'## -- skriv ut sidnummer navigeringen --
Sub PageNumbers(ByVal HowManyPages, WichPage)
	Dim strScriptName
	Dim I
	
	'## -- kolla om det finns några sidor --
	If HowManyPages = 0 Then
		Response.Write "0"
		Exit Sub
	End If
	
	strScriptName = Request.ServerVariables("SCRIPT_NAME")

	'## -- skriv ut länkar till sid nummer n. 
	'##    Den sida som visas ska ej vara länkad --
	For I = 1 To HowManyPages
		If CInt(I) <> CInt(WichPage) Then
			Response.Write "<A href='" & strScriptName & "?" & _
				"page=" & I & "'>" & I & "</A> "
		Else
			Response.Write "<B>" & I & "</B> "
		End If
	Next

End Sub

Du har snurrat till det och bytt ut I mot en annan variabel, varför!?! , byt ut den så ska du vara på rätt spår. (Ev. om du gjort liknande ändringar i andra subbar.)

WebbisNetMedlem sedan feb. 20032 027 inlägg
#12

solbulle skrev:

Sen är det "någon" som har varit och ändrat i denna sub.

	'## -- skriv ut sidnummer navigeringen --
Sub PageNumbers(ByVal HowManyPages, WichPage)
	Dim strScriptName
	Dim I
	
	'## -- kolla om det finns några sidor --
	If HowManyPages = 0 Then
		Response.Write "0"
		Exit Sub
	End If
	
	strScriptName = Request.ServerVariables("SCRIPT_NAME")

	'## -- skriv ut länkar till sid nummer n. 
	'##    Den sida som visas ska ej vara länkad --
	For I = 1 To HowManyPages
		If CInt(I) <> CInt(WichPage) Then
			Response.Write "<A href='" & strScriptName & "?" & _
				"page=" & I & "'>" & I & "</A> "
		Else
			Response.Write "<B>" & I & "</B> "
		End If
	Next

End Sub

Du har snurrat till det och bytt ut I mot en annan variabel, varför!?! , byt ut den så ska du vara på rätt spår. (Ev. om du gjort liknande ändringar i andra subbar.)

Den verkar funka som den ska , MEN den bryter inte sidorna efetr de antal inlägg den är inställd på

solbulleMedlem sedan mars 20015 287 inlägg
#13

Du menaralltså att den inte visar så många inlägg/poster den ska per sida?
Har du en länk till sidan?
HUr många inlägg/poster har du som ska skrivas ut? Hur många skadet vara per sida?

WebbisNetMedlem sedan feb. 20032 027 inlägg
#14

https://www.webbisen.com

ska vara 3 per sida tror jag att jag har skrivit

solbulleMedlem sedan mars 20015 287 inlägg
#15

Okelidoki. Jo, det där blir ju inte särskilt vackert. Är du HELT säker på att du skrivit 3 poster per sida?
Felet som jag påtalade angående navigeringen finns där...

OT, dina datum visas en smula galet på din sida.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#16

solbulle skrev:

Okelidoki. Jo, det där blir ju inte särskilt vackert. Är du HELT säker på att du skrivit 3 poster per sida?
Felet som jag påtalade angående navigeringen finns där...

OT, dina datum visas en smula galet på din sida.

Jag är medveten om datumet, jag letade och jag såg ingen etta på fel ställe......var exakt är felet?

solbulleMedlem sedan mars 20015 287 inlägg
#17

Ah, jag skrev fel förut, du måste varit bra snabb att läsa det. :)
Orginalkod:

		If CInt(I) <> CInt(WichPage) Then
			Response.Write "<A href='" & strScriptName & "?" & _
				"page=" & I & "'>" & I & "</A> "
		Else
			Response.Write "<B>" & I & "</B> "
		End If

Din kod:

If CInt(I) <> CInt(WichPage) Then
			Response.Write "<a href=""" & strScriptName & "&page=" & WichPage + 1 & """>" & I & "</A> "
		Else
			Response.Write "<B>" & I & "</B> "
		End If

Du verkar ha dribblat in WichPage där.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#18

kan du rätta mina fel här?

<%
Function getRecords
	Dim conn
	Dim connstr
	Dim SQL
	Dim RS
	Dim m_arrRecords
		
		Set conn = Server.CreateObject("ADODB.Connection")
		connstr = ("Driver={mySQL};Server=localhost;Port=3306;Option=131072;Stmt=;Database=;Uid=;Pwd=;")
		conn.Open connstr		
		SQL = "SELECT Namn, Epost, Datum, Meddelande, IP FROM gastbok ORDER BY Datum DESC"
		Set RS = conn.Execute(SQL)
			
				If Not RS.EOF Then
					m_arrRecords = RS.GetRows
					getRecords = m_arrRecords
				End If

				
		RS.Close
		Set RS = Nothing		
		conn.Close
		Set conn = Nothing
End Function

	'## -- skriver ut sidnavigeringen --
	'## -- skriv ut föregående sida --
Sub PrevPage(ByVal WichPage)
	Dim strScriptName
	strScriptName = Request.ServerVariables("SCRIPT_NAME") & "?View=read"

	'## -- skriv ut en länk till föregående sida --
	If CInt(WichPage) > 1 Then
		Response.Write "<a href=""" & strScriptName & "&page=" & I & """><< Föregående</A> "
	Else
		Response.Write "<< Föregående "
	End If
End Sub

	'## -- skriv ut sidnummer navigeringen --
Sub PageNumbers(ByVal HowManyPages, WichPage)
	Dim strScriptName
	Dim I
	
	'## -- kolla om det finns några sidor --
	If HowManyPages = 0 Then
		Response.Write "0"
		Exit Sub
	End If
	
	strScriptName = Request.ServerVariables("SCRIPT_NAME") & "?View=read"

	'## -- skriv ut länkar till sid nummer n. 
	'##    Den sida som visas ska ej vara länkad --
	If CInt(I) <> CInt(WichPage) Then
			Response.Write "<A href='" & strScriptName & "?" & _
				"page=" & I & "'>" & I & "</A> "
		Else
			Response.Write "<B>" & I & "</B> "
		End If

End Sub

	'## -- skriv ut nästa sida --
Sub NextPage(ByVal HowManyPages, ByVal WichPage)
	Dim strScriptName
	strScriptName = Request.ServerVariables("SCRIPT_NAME") & "?View=read"
	
	'## -- skriv ut en länk till nästa sida --
	If CInt(WichPage) < CInt(HowManyPages) Then
		Response.Write "<a href=""" & strScriptName & "&page=" & I & """>Nästa >></A>"
	Else
		Response.Write " Nästa >>"
	End If

End Sub

'## -- vilken post ska pagingen börja på --
Function getStartID(ByVal PageSize, ByVal ViewPage) ' As Integer
	Dim m_intStart
	m_intStart = ((PageSize * ViewPage) - PageSize)
	getStartID = m_intStart
End Function

Function countPages(ByVal HowManyRecords, ByVal PageSize)
	Dim m_intTotalPages, m_intRest

	m_intTotalPages = HowManyRecords / PageSize

	If m_intTotalPages < 1 Then
		m_intTotalPages = 1
	Else
		m_intRest = m_intTotalPages - CLng(m_intTotalPages)
		
		If m_intRest > 0 AND m_intRest < 0.5 Then
			m_intTotalPages = CLng(m_intTotalPages) + 1
		Else
			m_intTotalPages = CLng(m_intTotalPages)
		End If
	End If

	'## -- return how many pages --
	countPages = m_intTotalPages
End Function

'##***********************************************************************************

Dim arrRecords
Dim intPageSize
Dim intPage
Dim intStartID
Dim I
Dim intId
Dim Datum
Dim IP
Dim Namn
Dim Epost
Dim Hemsida
Dim Meddelande
Dim intTotalPages
Dim intTotalRecords

'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
If intPage = "" Then intPage = 1

'## -- hur många poster ska visas per sida --
intPageSize = 6

'## -- hämta alla records, hämtas med metoden getrows och returneras 
'##    som en array. --
arrRecords = getRecords

'## -- vilken post är den första --
intStartID = getStartID(intPageSize, intPage)

'## -- printa ut sidan som ska visas
'##    alla poster finns i arrayen arrRecords som
'##    kommer från funktionen getRecords --
	If IsArray(arrRecords) Then
'Response.Write "E ju en array<BR>"
	'## -- hur många records finns det totalt --
	intTotalRecords = UBound(arrRecords,2)
'intTotalRecords = arrRecords,2
'Response.write "poster = " & intTotalRecords 
	
	'## -- hur många sidor finns det i recordsetet --
	intTotalPages = countPages(intTotalRecords, intPageSize)

	Response.Write "<P>Visar nu sida <B>" & intPage & "</B> av " & intTotalPages & "</P>"
	For I = intStartID To ((intStartID + intPageSize) -1)
	
'Datum = arrRecords(rs.fields(0))
'IP = arrRecords(rs.fields(1))
'Namn = arrRecords(rs.fields(2))
'Epost = arrRecords(rs.fields(3))
'Hemsida = arrRecords(rs.fields(4))
'Meddelande = arrRecords(rs.fields(5))
		
		'Response.Write " Datum: " & Datum & " IP: " & IP & "Datum: " & Datum & " Epost: " & Epost & "Hemsida: " & Hemsida & " Meddelande: " & Meddelande & "<BR>"
		
		If I = UBound(arrRecords,2) Then Exit For
	Next
Else
	'## -- inga poster fanns i db --
	intPage = 0
	intTotalRecords = 0
	intTotalPages = 0
	
	'## -- skriv ut att inga poster hittades --
	Response.Write "<P>Inga poster hittades.</P>"
End If

'## -- skriv ut sidnavigerings menyn --
response.write("<table class=Text1 border=0 width='100%'><tr><td align=left width='33%'>")
Call PrevPage(intPage)
response.write("</td><td align=middle width='33%'>") 
response.write("Antal sidor: ")
Call PageNumbers(intTotalPages,intPage)
response.write("</td><td align=right width='33%'>") 
Call NextPage(intTotalPages,intPage)
response.write("</td></tr></table>") 
%>
solbulleMedlem sedan mars 20015 287 inlägg
#19
<%
Function getRecords
	Dim conn
	Dim connstr
	Dim SQL
	Dim RS
	Dim m_arrRecords
		
		Set conn = Server.CreateObject("ADODB.Connection")
		connstr = (" Driver={mySQL};Server=localhost;Port=3306;Option=131072;Stmt
=;Database=;Uid=;Pwd=;")
		conn.Open connstr		
		SQL = "SELECT Namn, Epost, Datum, Meddelande, IP FROM gastbok ORDER BY Datum DESC"
		Set RS = conn.Execute(SQL)
			
				If Not RS.EOF Then
					m_arrRecords = RS.GetRows
					getRecords = m_arrRecords
				End If

				
		RS.Close
		Set RS = Nothing		
		conn.Close
		Set conn = Nothing
End Function

	'## -- skriver ut sidnavigeringen --
	'## -- skriv ut föregående sida --
Sub PrevPage(ByVal WichPage)
	Dim strScriptName
	strScriptName = Request.ServerVariables("SCRIPT_NAME") & "?View=read"

	'## -- skriv ut en länk till föregående sida --
	If CInt(WichPage) > 1 Then
		Response.Write "<a href=""" & strScriptName & "&page=" & WichPage - 1 & """><< Föregående</A> "
	Else
		Response.Write "<< Föregående "
	End If
End Sub

	'## -- skriv ut sidnummer navigeringen --
Sub PageNumbers(ByVal HowManyPages, WichPage)
	Dim strScriptName
	Dim I
	
	'## -- kolla om det finns några sidor --
	If HowManyPages = 0 Then
		Response.Write "0"
		Exit Sub
	End If
	
	strScriptName = Request.ServerVariables("SCRIPT_NAME") & "?View=read"

	'## -- skriv ut länkar till sid nummer n. 
	'##    Den sida som visas ska ej vara länkad --
	For I = 1 To HowManyPages
		If CInt(I) <> CInt(WichPage) Then
			Response.Write "<A href='" & strScriptName & "&" & _
				"page=" & I & "'>" & I & "</A> "
		Else
			Response.Write "<B>" & I & "</B> "
		End If
	Next

End Sub

	'## -- skriv ut nästa sida --
Sub NextPage(ByVal HowManyPages, ByVal WichPage)
	Dim strScriptName
	strScriptName = Request.ServerVariables("SCRIPT_NAME") & "?View=read"
	
	'## -- skriv ut en länk till nästa sida --
	If CInt(WichPage) < CInt(HowManyPages) Then
		Response.Write "<a href=""" & strScriptName & "&page=" & WichPage + 1 & """>Nästa >></A>"
	Else
		Response.Write " Nästa >>"
	End If

End Sub

'## -- vilken post ska pagingen börja på --
Function getStartID(ByVal PageSize, ByVal ViewPage) ' As Integer
	Dim m_intStart
	m_intStart = ((PageSize * ViewPage) - PageSize)
	getStartID = m_intStart
End Function

Function countPages(ByVal HowManyRecords, ByVal PageSize)
	Dim m_intTotalPages, m_intRest

	m_intTotalPages = HowManyRecords / PageSize

	If m_intTotalPages < 1 Then
		m_intTotalPages = 1
	Else
		m_intRest = m_intTotalPages - CLng(m_intTotalPages)
		
		If m_intRest > 0 AND m_intRest < 0.5 Then
			m_intTotalPages = CLng(m_intTotalPages) + 1
		Else
			m_intTotalPages = CLng(m_intTotalPages)
		End If
	End If

	'## -- return how many pages --
	countPages = m_intTotalPages
End Function

 '##***********************************************************************************

Dim arrRecords
Dim intPageSize
Dim intPage
Dim intStartID
Dim I
Dim intId
Dim Datum
Dim IP
Dim Namn
Dim Epost
Dim Hemsida
Dim Meddelande
Dim intTotalPages
Dim intTotalRecords

'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
If intPage = "" Then intPage = 1

'## -- hur många poster ska visas per sida --
intPageSize = 6

'## -- hämta alla records, hämtas med metoden getrows och returneras 
'##    som en array. --
arrRecords = getRecords

'## -- vilken post är den första --
intStartID = getStartID(intPageSize, intPage)

'## -- printa ut sidan som ska visas
'##    alla poster finns i arrayen arrRecords som
'##    kommer från funktionen getRecords --
	If IsArray(arrRecords) Then
'Response.Write "E ju en array<BR>"
	'## -- hur många records finns det totalt --
	intTotalRecords = UBound(arrRecords,2)
'intTotalRecords = arrRecords,2
'Response.write "poster = " & intTotalRecords 
	
	'## -- hur många sidor finns det i recordsetet --
	intTotalPages = countPages(intTotalRecords, intPageSize)

	Response.Write "<P>Visar nu sida <B>" & intPage & "</B> av " & intTotalPages & "</P>"
	For I = intStartID To ((intStartID + intPageSize) -1)
	
'Datum = arrRecords(rs.fields(0))
'IP = arrRecords(rs.fields(1))
'Namn = arrRecords(rs.fields(2))
'Epost = arrRecords(rs.fields(3))
'Hemsida = arrRecords(rs.fields(4))
'Meddelande = arrRecords(rs.fields(5))
		
		'Response.Write " Datum: " & Datum & " IP: " & IP & "Datum: " & Datum & " Epost: " & Epost & "Hemsida: " & Hemsida & " Meddelande: " & Meddelande & "<BR>"
		
		If I = UBound(arrRecords,2) Then Exit For
	Next
Else
	'## -- inga poster fanns i db --
	intPage = 0
	intTotalRecords = 0
	intTotalPages = 0
	
	'## -- skriv ut att inga poster hittades --
	Response.Write "<P>Inga poster hittades.</P>"
End If

'## -- skriv ut sidnavigerings menyn --
response.write("<table class=Text1 border=0 width='100%'><tr><td align=left width='33%'>")
Call PrevPage(intPage)
response.write("</td><td align=middle width='33%'>") 
response.write("Antal sidor: ")
Call PageNumbers(intTotalPages,intPage)
response.write("</td><td align=right width='33%'>") 
Call NextPage(intTotalPages,intPage)
response.write("</td></tr></table>") 
%>

/red. Ändrade ett ? till ett & i subben PageNumbers

WebbisNetMedlem sedan feb. 20032 027 inlägg
#20

kopierade in din kod, klistrade in......man kan inte klicka på nån siffra för då blir sidan bara vit, bakåt och föregående finkar......men den bryter fortfarande inte sidorna

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