% Option Explicit %>
<%
'****************************************************************************************
'** Refer to Web Wiz Guide Guestbook
'****************************************************************************************
'Buffer the response
Response.Buffer = True
'Dimension variables
Dim rsGuestbook 'Database Recordset Variable
Dim strName 'Holds the Users name
Dim strEmailAddress 'Holds the Users e-mail address
Dim strCountry 'Holds the users country
Dim strHomepage 'Holds the Users homepage
Dim strComments 'Holds the Users comments
Dim dtmEntryDate 'Holds the date the commnets where made
Dim intRecordPositionPageNum 'Holds the record position
Dim intRecordLoopCounter 'Loop counter for displaying the guestbook records
Dim intTotalNumGuestbookEntries 'Holds the total number of records in the database
Dim intTotalNumGuestbookPages 'Holds the total number of pages in the database
Dim intLinkPageNum 'Holds the page number to be linked to
'If this is the first time the page is displayed then the guestbook record position is set to page 1
If Request.QueryString("PagePosition") = "" Then
intRecordPositionPageNum = 1
'Else the page has been displayed before so the guestbook record postion is set to the Record Position number
Else
intRecordPositionPageNum = CInt(Request.QueryString("PagePosition"))
End If
'Create recorset object
Set rsGuestbook = Server.CreateObject("ADODB.Recordset")
'Initalise the strSQL variable with an SQL statement to query the database by selecting all tables ordered by the decending date
strSQL = "SELECT tblComments.* FROM tblComments ORDER BY Date_stamp DESC;"
'Set the cursor type property of the record set to dynamic so we can naviagate through the record set
rsGuestbook.CursorType = 3
'Query the database
rsGuestbook.Open strSQL, adoCon
'Set the number of records to display on each page by the constant set at the top of the script
rsGuestbook.PageSize = intRecordsPerPage
'Get the guestbook record poistion to display from
If NOT rsGuestbook.EOF Then rsGuestbook.AbsolutePage = intRecordPositionPageNum
%>
Givethanks Studio ~Guest Book
Welcome to the our guest book. If you would like to sign the guest
book, please click on the link below.
Sign the guest book |
|
<%
'If there are no rcords in the database display an error message
If rsGuestbook.EOF Then
'Tell the user there are no records to show
Response.Write " There are no records in the guestbook database"
Response.Write " Please check back later"
Response.End
'Display the guestbook
Else
'Count the number of enties in the guestbook database
intTotalNumGuestbookEntries = rsGuestbook.RecordCount
'Count the number of pages there are in the guestbook database calculated by the PageSize attribute set above
intTotalNumGuestbookPages = rsGuestbook.PageCount
'Display the HTML number number the total number of pages and total number of records in the guestbook database
%>
There are <% = intTotalNumGuestbookEntries %> guestbook entries in <% = intTotalNumGuestbookPages %> pages and you are on page number <% = intRecordPositionPageNum %> |
<%
'For....Next Loop to display records from the guestbook database
For intRecordLoopCounter = 1 to intRecordsPerPage
'If there are no guestbook records left to display then exit loop
If rsGuestbook.EOF Then Exit For
'Read in the values form the database
strName = rsGuestbook("Name")
strCountry = rsGuestbook("Country")
strEmailAddress = rsGuestbook("EMail")
dtmEntryDate = CDate(rsGuestbook("Date_stamp"))
strHomepage = rsGuestbook("Homepage")
strComments = rsGuestbook("Comments")
'If there is no homepage entry to display the display no URL given
If strHomepage = "http://" then
strHomepage = "no URL given"
'Else turn the URL stored in the strHomepage variable into a hyperlink
Else
strHomepage = "" & strHomepage & ""
End If
'Write the HTML to the web browser to display the guestbook entries
%>
| Comments by
<%
'Display the email address if there is one
If strEmailAddress <> "" Then Response.Write("" & strName & "") Else Response.Write(strName)
%> on <% = FormatDateTime(dtmEntryDate, VbLongDate) %> at <% = FormatDateTime(dtmEntryDate, VbShortTime) %> |
|
|
| <% = strComments %> |
| <% = strCountry %> |
<% = strHomepage %> |
|
<%
'Move to the next record in the database
rsGuestbook.MoveNext
'Loop back round
Next
End If
'Display an HTML table with links to the other entries in the guestbook
%>
| <%
'If there are more pages to display then add a title to the other pages
If intRecordPositionPageNum > 1 or NOT rsGuestbook.EOF Then
Response.Write vbCrLf & " Page: "
End If
'If the guestbook page number is higher than page 1 then display a back link
If intRecordPositionPageNum > 1 Then
Response.Write vbCrLf & ("<< Prev")
End If
'If there are more pages to display then display links to all the pages
If intRecordPositionPageNum > 1 or NOT rsGuestbook.EOF Then
'Display a link for each page in the guestbook
For intLinkPageNum = 1 to intTotalNumGuestbookPages
'If there is more than 7 pages display ... last page and exit the loop
If intLinkPageNum > 15 Then
If intTotalNumGuestbookPages = intRecordPositionPageNum Then Response.Write(" ..." & intTotalNumGuestbookPages) Else Response.Write(" ..." & intTotalNumGuestbookPages & "")
'Exit Loop
Exit For
'Else display the normal link code
Else
'If the page to be linked to is the page displayed then don't make it a hyper-link
If intLinkPageNum = intRecordPositionPageNum Then Response.Write(" " & intLinkPageNum) Else Response.Write(" " & intLinkPageNum & "")
End If
Next
End If
'If it is Not the End of the guestbook entries then display a next link for the next guestbook page
If NOT rsGuestbook.EOF then
Response.Write (" Next >>")
End If
'Finsh HTML the table
%> |
|
<%
'Reset Server Variables
rsGuestbook.Close
Set rsGuestbook = Nothing
Set adoCon = Nothing
Set strCon = Nothing
%> |