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: </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: </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>
</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 " Pages: "
Call PageNumbers(intTotalPages,intPage)
%>
PatrikBMedlem sedan mars 20002 836 inlägg 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 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
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: </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: </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 Det är dessa du inte kan ha, <% =RS("Datum")%> etc
Om du tar bort alla dina <% =RS("?????")%>, funkar det då?
cya,
/PatrikB
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
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 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)
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 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 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.)
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 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?
https://www.webbisen.com
ska vara 3 per sida tror jag att jag har skrivit
solbulleMedlem sedan mars 20015 287 inlägg 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.
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 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.
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 <%
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
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