Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 Development Tools
 Other Development Tools
 Need help on WHERE clause

Author  Topic 

jarv
Posting Yak Master

131 Posts

Posted - 2008-12-16 : 04:20:38
Hi, I recently purchased a forum from [url]http://www.webwizguide.com/webwizforums/[/url] I need to modify the SQL slightly as when i click a link to one of my forums within my main forum, I only want that Category forum to show.

eg; default.asp?c=1 to only show Category 1 forum

<% @ Language=VBScript %>
<% Option Explicit %>
<!--#include file="common.asp" -->
<!--#include file="functions/functions_date_time_format.asp" -->
<%

'Set the response buffer to true as we maybe redirecting and setting a cookie
Response.Buffer = true

'Make sure this page is not cached
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 2
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "No-Store"



'Dimension variables
Dim sarryForums 'Holds the recordset array for all the categories and forums
Dim saryMemebrStats 'Holds the member stats
Dim strCategory 'Holds the category name
Dim intCatID 'Holds the id for the category
Dim strForumName 'Holds the forum name
Dim strForumDiscription 'Holds the forum description
Dim strForumPassword 'Holds the forum password if there is one
Dim lngNumberOfTopics 'Holds the number of topics in a forum
Dim lngNumberOfPosts 'Holds the number of Posts in the forum
Dim lngTotalNumberOfTopics 'Holds the total number of topics in a forum
Dim lngTotalNumberOfPosts 'Holds the total number of Posts in the forum
Dim intNumberofForums 'Holds the number of forums
Dim lngLastEntryMeassgeID 'Holds the message ID of the last entry
Dim dtmLastEntryDate 'Holds the date of the last entry to the forum
Dim strLastEntryUser 'Holds the the username of the user who made the last entry
Dim lngLastEntryUserID 'Holds the ID number of the last user to make and entry
Dim dtmLastEntryDateAllForums 'Holds the date of the last entry to all fourms
Dim strLastEntryUserAllForums 'Holds the the username of the user who made the last entry to all forums
Dim lngLastEntryUserIDAllForums 'Holds the ID number of the last user to make and entry to all forums
Dim blnForumLocked 'Set to true if the forum is locked
Dim intForumColourNumber 'Holds the number to calculate the table row colour
Dim blnHideForum 'Set to true if this is a hidden forum
Dim intCatShow 'Holds the ID number of the category to show if only showing one category
Dim intActiveUsers 'Holds the number of active users
Dim intActiveGuests 'Holds the number of active guests
Dim intActiveMembers 'Holds the number of logged in active members
Dim strMembersOnline 'Holds the names of the members online
Dim intSubForumID 'Holds the sub forum ID number
Dim strSubForumName 'Holds the sub forum name
Dim strSubForums 'Holds if there are sub forums
Dim dtmLastSubEntryDate 'Holds the date of the last entry to the forum
Dim strLastSubEntryUser 'Holds the the username of the user who made the last entry
Dim lngLastSubEntryUserID 'Holds the ID number of the last user to make and entry
Dim lngSubForumNumberOfPosts 'Holds the number of posts in the subforum
Dim lngSubForumNumberOfTopics 'Holds the number of topics in the subforum
Dim strSubForumPassword 'Holds sub forum password
Dim lngTotalRecords 'Holds the number of records
Dim intCurrentRecord 'Holds the current record position
Dim intTempRecord 'Holds a temporary record position for looping through records for any checks
Dim blnSubRead 'Holds if the user has entry to the sub forum
Dim lngNoOfMembers 'Holds the number of forum members
Dim intArrayPass 'Active users array counter
Dim strBirthdays 'String containing all those with birtdays today
Dim dtmNow 'Now date with off-set
Dim intBirtdayLoopCounter 'Holds the bitrhday loop counter
Dim intLastForumEntryID 'Holds the last forum ID for the last entry for link in forum stats
Dim intTotalViewingForum 'Holds the number of people viewing the forum, including sub forums
Dim intAnonymousMembers 'Holds the number of intAnonymous members online
Dim intUnReadPostCount 'Holds the count for the number of unread posts in the forum
Dim intUnReadForumPostsLoop 'Loop to count the number of unread posts in a forum
Dim lngTopicID 'Holds the topic ID
Dim strSubject 'Holds the subject
Dim lngSubTopicID 'Holds the topic ID
Dim strSubSubject 'Holds the subject





'Initialise variables
lngTotalNumberOfTopics = 0
lngTotalNumberOfPosts = 0
intNumberofForums = 0
intForumColourNumber = 0
intActiveMembers = 0
intActiveGuests = 0
intActiveUsers = 0
intAnonymousMembers = 0
lngTotalRecords = 0
lngNoOfMembers = 0
intBirtdayLoopCounter = 0


'Test querystrings for any SQL Injection keywords
Call SqlInjectionTest(Request.QueryString())




'Read in the category to show
If IsNumeric(Request.QueryString("C")) Then
intCatShow = CInt(Request.QueryString("C"))
Else
intCatShow = 0
End If



'If we have not yet checked for unread posts since last visit run it now
If Session("dtmUnReadPostCheck") = "" Then
Call UnreadPosts()
'Read in array if at application level
ElseIf isArray(Application("sarryUnReadPosts" & strSessionID)) Then
sarryUnReadPosts = Application("sarryUnReadPosts" & strSessionID)
'Read in the unread posts array
ElseIf isArray(Session("sarryUnReadPosts")) Then
sarryUnReadPosts = Session("sarryUnReadPosts")
End If





'Read the various categories, forums, and permissions from the database in one hit for extra performance
'Initalise the strSQL variable with an SQL statement to query the database
strSQL = "" & _
"SELECT " & strDbTable & "Category.Cat_ID, " & strDbTable & "Category.Cat_name, " & strDbTable & "Forum.Forum_ID, " & strDbTable & "Forum.Sub_ID, " & strDbTable & "Forum.Forum_name, " & strDbTable & "Forum.Forum_description, " & strDbTable & "Forum.No_of_topics, " & strDbTable & "Forum.No_of_posts, " & strDbTable & "Author.Username, " & strDbTable & "Forum.Last_post_author_ID, " & strDbTable & "Forum.Last_post_date, " & strDbTable & "Forum.Password, " & strDbTable & "Forum.Locked, " & strDbTable & "Forum.Hide, " & strDbTable & "Permissions.View_Forum, " & strDbTable & "Forum.Last_topic_ID, " & strDbTable & "Topic.Subject " & _
"FROM (((" & strDbTable & "Category INNER JOIN " & strDbTable & "Forum ON " & strDbTable & "Category.Cat_ID = " & strDbTable & "Forum.Cat_ID) LEFT JOIN " & strDbTable & "Topic ON " & strDbTable & "Forum.Last_topic_ID = " & strDbTable & "Topic.Topic_ID) INNER JOIN " & strDbTable & "Author ON " & strDbTable & "Forum.Last_post_author_ID = " & strDbTable & "Author.Author_ID) INNER JOIN " & strDbTable & "Permissions ON " & strDbTable & "Forum.Forum_ID = " & strDbTable & "Permissions.Forum_ID " & _
"WHERE (" & strDbTable & "Permissions.Author_ID = " & lngLoggedInUserID & " OR " & strDbTable & "Permissions.Group_ID = " & intGroupID & ") " & _
"ORDER BY " & strDbTable & "Category.Cat_order, " & strDbTable & "Forum.Forum_Order, " & strDbTable & "Permissions.Author_ID DESC;"


'Set error trapping
On Error Resume Next

'Query the database
rsCommon.Open strSQL, adoCon

'If an error has occurred write an error to the page
If Err.Number <> 0 Then Call errorMsg("An error has occurred while executing SQL query on database.", "get_forum_data", "default.asp")

'Disable error trapping
On Error goto 0


'Place the recordset into an array
If NOT rsCommon.EOF Then
sarryForums = rsCommon.GetRows()
lngTotalRecords = Ubound(sarryForums,2) + 1
End If

'Close the recordset
rsCommon.Close


'SQL Query Array Look Up table
'0 = Cat_ID
'1 = Cat_name
'2 = Forum_ID
'3 = Sub_ID
'4 = Forum_name
'5 = Forum_description
'6 = No_of_topics
'7 = No_of_posts
'8 = Last_post_author
'9 = Last_post_author_ID
'10 = Last_post_date
'11 = Password
'12 = Locked
'13 = Hide
'14 = Read
'15 = Last_topic_ID
'16 = Topic.Subject



'Get the last signed up user and member stats and birthdays for use at bottom of page
If blnDisplayBirthdays Then

'Get the now date with time off-set
dtmNow = getNowDate()

'Initalise the strSQL variable with an SQL statement to query the database
strSQL = "SELECT " & strDbTable & "Author.Username, " & strDbTable & "Author.Author_ID, " & strDbTable & "Author.DOB " & _
"FROM " & strDbTable & "Author" & strDBNoLock & " " & _
"WHERE MONTH(" & strDbTable & "Author.DOB) = " & Month(dtmNow) & " " & _
"AND DAY(" & strDbTable & "Author.DOB) = " & Day(dtmNow) & " " & _
"ORDER BY " & strDbTable & "Author.Author_ID DESC;"

'Set error trapping
On Error Resume Next

'Query the database
rsCommon.Open strSQL, adoCon

'If an error has occurred write an error to the page
If Err.Number <> 0 AND strDatabaseType = "mySQL" Then
Call errorMsg("An error has occurred while executing SQL query on database.<br />Please check that the MySQL Server version is 4.1 or above.", "get_birthdays", "default.asp")
ElseIf Err.Number <> 0 Then
Call errorMsg("An error has occurred while executing SQL query on database.", "get_birthdays", "default.asp")
End If


'Disable error trapping
On Error goto 0

'Place the recordset into an array
If NOT rsCommon.EOF Then

'Read the recordset into an array
saryMemebrStats = rsCommon.GetRows()

'Loop through to get all members with birthdays today
Do While intBirtdayLoopCounter <= Ubound(saryMemebrStats, 2)

'If bitrhday is found for this date then add it to string
If Month(dtmNow) = Month(saryMemebrStats(2, intBirtdayLoopCounter)) AND Day(dtmNow) = Day(saryMemebrStats(2, intBirtdayLoopCounter)) Then

'If there is already one birthday then place a comma before the next
If strBirthdays <> "" Then strBirthdays = strBirthdays & ", "

'Place the birthday into the Birthday array
strBirthdays = strBirthdays & "<a href=""member_profile.asp?PF=" & saryMemebrStats(1, intBirtdayLoopCounter) & strQsSID2 & """ rel=""nofollow"">" & saryMemebrStats(0, intBirtdayLoopCounter) & "</a> (" & Fix(DateDiff("m", saryMemebrStats(2, intBirtdayLoopCounter), Year(dtmNow) & "-" & Month(dtmNow) & "-" & Day(dtmNow))/12) & ")"
End If

'Increment loop counter by 1
intBirtdayLoopCounter = intBirtdayLoopCounter + 1
Loop
End If

'Close recordset
rsCommon.close
End If






'Read in some stats about the last members
strSQL = "SELECT " & strDBTop1 & " " & strDbTable & "Author.Username, " & strDbTable & "Author.Author_ID "
If NOT strDatabaseType = "mySQL" Then strSQL = strSQL & ", (SELECT COUNT (*) FROM " & strDbTable & "Author WHERE 1 = 1) AS memberCount "
strSQL = strSQL & _
"FROM " & strDbTable & "Author" & strDBNoLock & " " & _
"ORDER BY " & strDbTable & "Author.Author_ID DESC " & strDBLimit1 & ";"

'Set error trapping
On Error Resume Next

'Query the database
rsCommon.Open strSQL, adoCon

'If an error has occurred write an error to the page
If Err.Number <> 0 Then Call errorMsg("An error has occurred while executing SQL query on database.", "get_last_USR_+_count", "default.asp")

'Disable error trapping
On Error goto 0

'Place the recordset into an array
If NOT rsCommon.EOF Then

'Read in member count from database (if NOT mySQL)
If NOT strDatabaseType = "mySQL" Then lngNoOfMembers = CLng(rsCommon("memberCount"))

'Read the recordset into an array
saryMemebrStats = rsCommon.GetRows()
End If

'Close recordset
rsCommon.close




'We have tgo use a seporate query to count the number of members in mySQL
If strDatabaseType = "mySQL" Then

'Count the number of members
strSQL = "SELECT Count(" & strDbTable & "Author.Author_ID) AS memberCount " & _
"FROM " & strDbTable & "Author;"

'Set error trapping
On Error Resume Next

'Query the database
rsCommon.Open strSQL, adoCon

'If an error has occurred write an error to the page
If Err.Number <> 0 Then Call errorMsg("An error has occurred while executing SQL query on database.", "member_count", "default.asp")

'Disable error trapping
On Error goto 0

'Read in member count from database
lngNoOfMembers = CLng(rsCommon("memberCount"))

'Close recordset
rsCommon.close
End If






'If active users is enabled update the active users application array
If blnActiveUsers Then
'Call active users function
saryActiveUsers = activeUsers("", strTxtForumIndex, "default.asp", 0)
End If

'Set the status bar tools
'Active Topics Links
strStatusBarTools = strStatusBarTools & "  <img src=""" & strImagePath & "active_topics." & strForumImageType & """ alt=""" & strTxtActiveTopics & """ title=""" & strTxtActiveTopics & """ style=""vertical-align: text-bottom"" /> <a href=""active_topics.asp" & strQsSID1 & """>" & strTxtActiveTopics & "</a> "
strStatusBarTools = strStatusBarTools & "  <img src=""" & strImagePath & "unanswered_topics." & strForumImageType & """ alt=""" & strTxtUnAnsweredTopics & """ title=""" & strTxtUnAnsweredTopics & """ style=""vertical-align: text-bottom"" /> <a href=""active_topics.asp?UA=Y" & strQsSID2 & """>" & strTxtUnAnsweredTopics & "</a> "
'If RSS XML enabled then display an RSS button to link to XML file
If blnRSS Then strStatusBarTools = strStatusBarTools & " <a href=""RSS_topic_feed.asp" & strQsSID1 & """ target=""_blank""><img src=""" & strImagePath & "rss." & strForumImageType & """ alt=""" & strTxtRSS & ": " & strTxtNewPostFeed & """ title=""" & strTxtRSS & ": " & strTxtNewPostFeed & """ /></a>"

%>
<!-- #include file="includes/browser_page_encoding_inc.asp" -->
<title><% = strMainForumName %><% If blnLCode Then Response.Write(" - Powered by Web Wiz Forums™") %></title>
<meta name="generator" content="Web Wiz Forums" /><%

'***** START WARNING - REMOVAL OR MODIFICATION OF THIS CODE WILL VIOLATE THE LICENSE AGREEMENT ******
If blnLCode Then
Response.Write(vbCrLf & "<meta name=""description"" content=""This is a discussion forum powered by Web Wiz Forums. To find out about Web Wiz Forums, go to http://www.webwizforums.com"" />" & _
vbCrLf & "<meta name=""keywords"" content=""forum, bbs, discussion, bulletin board, message board"" />")
End If

Response.Write(vbCrLf & vbCrLf & "<!--//" & _
vbCrLf & "/* *******************************************************" & _
vbCrLf & "Software: Web Wiz Forums(TM) ver. " & strVersion & "" & _
vbCrLf & "Info: http://www.webwizforums.com" & _
vbCrLf & "Copyright: (C)2001-2008 Web Wiz(TM). All rights reserved" & _
vbCrLf & "******************************************************* */" & _
vbCrLf & "//-->" & vbCrLf)
'***** END WARNING - REMOVAL OR MODIFICATION OF THIS CODE WILL VIOLATE THE LICENSE AGREEMENT ******


'If RSS Feed is enabled then have an alt link to the XML file for supporting browsers
If blnRSS Then Response.Write(vbCrLf & "<link rel=""alternate"" type=""application/rss+xml"" title=""RSS 2.0"" href=""RSS_topic_feed.asp" & strQsSID1 & """ />")

%>
   

- Advertisement -