⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 admin_count.asp

📁 代码名称: Snitz Forums 2000 代码语言: 英文 代码类型: 国外代码 运行环境: ASP 授权方式: 免费代码 代码大小: 530kb 代码等级: 3 整
💻 ASP
📖 第 1 页 / 共 2 页
字号:

	set rs = Server.CreateObject("ADODB.Recordset")
	rs.open strSql, my_Conn, adOpenForwardOnly, adLockReadOnly, adCmdText

	if rs.EOF then
		recTopicCount = ""
	else
		allTopicData = rs.GetRows(adGetRowsRest)
		recTopicCount = UBound(allTopicData,2)
	end if

	rs.close
	set rs = nothing

	if recTopicCount <> "" then
		fTOPIC_ID = 0
		i = 0 

		for iTopic = 0 to recTopicCount
			TopicID = allTopicData(fTOPIC_ID,iTopic)

			i = i + 1

			'## Forum_SQL - count total number of unmoderated replies in Topics table
			strSql = "SELECT count(REPLY_ID) AS cnt "
			strSql = strSql & " FROM " & strTablePrefix & "REPLY "
			strSql = strSql & " WHERE TOPIC_ID = " & TopicID
			strSql = strSql & " AND R_STATUS = 2 OR R_STATUS = 3 "

			set rs = Server.CreateObject("ADODB.Recordset")
			rs.open strSql, my_Conn, adOpenForwardOnly, adLockReadOnly, adCmdText

			if rs.EOF then
				recReplyCntCount = ""
			else
				allReplyCntData = rs.GetRows(adGetRowsRest)
				recReplyCntCount = UBound(allReplyCntData,2)
			end if

			rs.close
			set rs = nothing

			if recReplyCntCount <> "" then
				fReplyCnt = 0
				for iCnt = 0 to recReplyCntCount
					intT_UREPLIES = allReplyCntData(fReplyCnt,iCnt)
				next
                        else
				intT_UREPLIES = 0
			end if

			strSql = "UPDATE " & strTablePrefix & "TOPICS "
			strSql = strSql & " SET T_UREPLIES = " & intT_UREPLIES
			strSql = strSql & " WHERE TOPIC_ID = " & TopicID

			my_conn.execute(strSql),,adCmdText + adExecuteNoRecords

			Response.Write "."
			if i = 80 then 
				Response.Write "          <br />" & vbNewline
				i = 0
			end if
		next
	end if

	Response.Write "          </font></td>" & vbNewline
	Response.Write "        </tr>" & vbNewline

elseif intStep = 4 then 

	Response.Write "        <tr>" & vbNewline
	Response.Write "          <td align=""right"" valign=""top""><font face=""" & strDefaultFontFace & """>Forum Replies:</font></td>" & vbNewline
	Response.Write "          <td valign=top><font face=""" &strDefaultFontFace & """>"

	'## Forum_SQL - Get values from Forum table needed to count replies
	strSql = "SELECT FORUM_ID, F_COUNT FROM " & strTablePrefix & "FORUM WHERE F_TYPE <> 1 "

	set rs = Server.CreateObject("ADODB.Recordset")
	rs.open strSql, my_Conn, adOpenForwardOnly, adLockReadOnly, adCmdText

	if rs.EOF then
		recForumCount = ""
	else
		allForumData = rs.GetRows(adGetRowsRest)
		recForumCount = UBound(allForumData,2)
	end if

	rs.close
	set rs = nothing

	if recForumCount <> "" then
		fFORUM_ID = 0
		fF_COUNT = 1
		i = 0

		for iForum = 0 to recForumCount
			ForumID = allForumData(fFORUM_ID,iForum)
			ForumCount = allForumData(fF_COUNT,iForum)

			i = i + 1

			'## Forum_SQL - Count total number of Replies
			strSql = "SELECT Sum(" & strTablePrefix & "TOPICS.T_REPLIES) AS SumOfT_REPLIES, Count(" & strTablePrefix & "TOPICS.T_REPLIES) AS cnt "
			strSql = strSql & " FROM " & strTablePrefix & "TOPICS "
			strSql = strSql & " WHERE " & strTablePrefix & "TOPICS.FORUM_ID = " & ForumID
			strSql = strSql & " AND " & strTablePrefix & "TOPICS.T_STATUS <= 1"

			set rs1 = my_Conn.Execute(strSql)

			if rs1.EOF or rs1.BOF then
				intF_COUNT = 0
				intF_TOPICS = 0
			else
				intF_COUNT = rs1("cnt") + rs1("SumOfT_REPLIES")
				intF_TOPICS = rs1("cnt") 
			end if
			if IsNull(intF_COUNT) then intF_COUNT = 0 
			if IsNull(intF_TOPICS) then intF_TOPICS = 0 

			set rs1 = nothing

			'## Forum_SQL - Count total number of Archived Replies
			strSql = "SELECT Sum(" & strTablePrefix & "A_TOPICS.T_REPLIES) AS SumOfT_REPLIES, Count(" & strTablePrefix & "A_TOPICS.T_REPLIES) AS cnt "
			strSql = strSql & " FROM " & strTablePrefix & "A_TOPICS "
			strSql = strSql & " WHERE " & strTablePrefix & "A_TOPICS.FORUM_ID = " & ForumID
			strSql = strSql & " AND " & strTablePrefix & "A_TOPICS.T_STATUS <= 1"

			set rs1 = my_Conn.Execute(strSql)

			if rs1.EOF or rs1.BOF then
				intF_A_COUNT = 0
				intF_A_TOPICS = 0
			else
				intF_A_COUNT = rs1("cnt") + rs1("SumOfT_REPLIES")
				intF_A_TOPICS = rs1("cnt") 
			end if
			if IsNull(intF_A_COUNT) then intF_A_COUNT = 0 
			if IsNull(intF_A_TOPICS) then intF_A_TOPICS = 0 

			set rs1 = nothing

			'## Forum_SQL - Get last_post and last_post_author for Forum
			strSql = "SELECT T_LAST_POST, T_LAST_POST_AUTHOR "
			strSql = strSql & " FROM " & strTablePrefix & "TOPICS "
			strSql = strSql & " WHERE FORUM_ID = " & ForumID & " "
			strSql = strSql & " AND " & strTablePrefix & "TOPICS.T_STATUS <= 1"
			strSql = strSql & " ORDER BY T_LAST_POST DESC"

			set rs2 = my_Conn.Execute (strSql)

			if not (rs2.eof or rs2.bof) then
				strLast_Post = rs2("T_LAST_POST")
				strLast_Post_Author = rs2("T_LAST_POST_AUTHOR")
			else
				strLast_Post = ""
				strLast_Post_Author = ""
			end if

			set rs2 = nothing

			strSql = "UPDATE " & strTablePrefix & "FORUM "
			strSql = strSql & " SET F_COUNT = " & intF_COUNT
			strSql = strSql & ",  F_TOPICS = " & intF_TOPICS
			strSql = strSql & ",  F_A_COUNT = " & intF_A_COUNT
			strSql = strSql & ",  F_A_TOPICS = " & intF_A_TOPICS
			if strLast_Post <> "" then 
				strSql = strSql & ", F_LAST_POST = '" & strLast_Post & "' "
				if strLast_Post_Author <> "" then 
					strSql = strSql & ", F_LAST_POST_AUTHOR = " & strLast_Post_Author
				end if
			end if
			strSql = strSql & " WHERE FORUM_ID = " & ForumID

			my_conn.execute(strSql),,adCmdText + adExecuteNoRecords

			Response.Write "."
			if i = 80 then 
				Response.Write "          <br />" & vbNewline
				i = 0
			end if	
		next
	end if
	Response.Write "          </font></td>" & vbNewline
	Response.Write "        </tr>" & vbNewline

elseif intStep = 5 then 

	Response.Write "        <tr>" & vbNewline
	Response.Write "          <td align=""right"" valign=""top""><font face=""" &strDefaultFontFace & """>Totals:</font></td>" & vbNewline
	Response.Write "          <td valign=""top""><font face=""" &strDefaultFontFace & """>"

	'## Forum_SQL - Total of Topics
	strSql = "SELECT Sum(" & strTablePrefix & "FORUM.F_TOPICS) "
	strSql = strSql & " AS SumOfF_TOPICS "
	strSql = strSql & ", Sum(" & strTablePrefix & "FORUM.F_A_TOPICS) "
	strSql = strSql & " AS SumOfF_A_TOPICS "
	strSql = strSql & " FROM " & strTablePrefix & "FORUM WHERE F_TYPE <> 1 "

	set rs = my_Conn.Execute(strSql)

	if rs("SumOfF_TOPICS") <> "" then
		Response.Write "Total Topics: " & rs("SumOfF_TOPICS") & "<br />" & vbNewline
		intSumOfF_TOPICS = rs("SumOfF_TOPICS")
	else
		Response.Write "Total Topics: 0<br />" & vbNewLine
		intSumOfF_TOPICS = 0
	end if
	if rs("SumOfF_A_TOPICS") <> "" then
		Response.Write "Archived Topics: " & rs("SumOfF_A_TOPICS") & "<br />" & vbNewline
		intSumOfF_A_TOPICS = rs("SumOfF_A_TOPICS")
	else
		Response.Write "Archived Topics: 0<br />" & vbNewLine
		intSumOfF_A_TOPICS = 0
	end if

	'## Forum_SQL - Write total Topics to Totals table
	strSql = "UPDATE " & strTablePrefix & "TOTALS "
	strSql = strSql & " SET T_COUNT = " & intSumOfF_TOPICS
	strSql = strSql & " , T_A_COUNT = " & intSumOfF_A_TOPICS

	set rs = nothing

	my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords

	'## Forum_SQL - Total all the replies for each topic
	strSql = "SELECT Sum(" & strTablePrefix & "FORUM.F_COUNT) "
	strSql = strSql & " AS SumOfF_COUNT "
	strSql = strSql & ", Sum(" & strTablePrefix & "FORUM.F_A_COUNT) "
	strSql = strSql & " AS SumOfF_A_COUNT "
	strSql = strSql & " FROM " & strTablePrefix & "FORUM WHERE F_TYPE <> 1 "

	set rs = my_Conn.Execute (strSql)

	if rs("SumOfF_COUNT") <> "" then
		Response.Write "          Total Posts: " & RS("SumOfF_COUNT") & "<br />" & vbNewline
		intSumOfF_COUNT = rs("SumOfF_COUNT")
	else
		Response.Write "          Total Posts: 0<br />" & vbNewline
		intSumOfF_COUNT = 0
	end if
	if rs("SumOfF_A_COUNT") <> "" then
		Response.Write "          Total Archived Posts: " & RS("SumOfF_A_COUNT") & "<br />" & vbNewline
		intSumOfF_A_COUNT = rs("SumOfF_A_COUNT")
	else
		Response.Write "          Total Posts: 0<br />" & vbNewline
		intSumOfF_A_COUNT = 0
	end if

	'## Forum_SQL - Write total replies to the Totals table
	strSql = "UPDATE " & strTablePrefix & "TOTALS "
	strSql = strSql & " SET P_COUNT = " & intSumOfF_COUNT
	strSql = strSql & " , P_A_COUNT = " & intSumOfF_A_COUNT

	set rs = nothing

	my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords

	'## Forum_SQL - Total number of users
	strSql = "SELECT Count(MEMBER_ID) "
	strSql = strSql & " AS CountOf "
	strSql = strSql & " FROM " & strMemberTablePrefix & "MEMBERS"

	set rs = my_Conn.Execute(strSql)

	Response.Write "          Registered Users: " & rs("Countof") & "<br />" & vbNewline

	'## Forum_SQL - Write total number of users to Totals table
	strSql = " UPDATE " & strTablePrefix & "TOTALS "
	strSql = strSql & " SET U_COUNT = " & cLng(RS("Countof"))

	set rs = nothing

	my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords

	Response.Write "          </font></td>" & vbNewline
	Response.Write "        </tr>" & vbNewline
	Response.Write "        <tr>" & vbNewline
	Response.Write "          <td align=""center"" colspan=""2"">&nbsp;<br />" & vbNewline
	Response.Write "          <b><font face=""" & strDefaultFontFace & """ size=""" & strHeaderFontSize & """>Count Update Complete</font></b></font></td>" & vbNewline
	Response.Write "        </tr>" & vbNewline
	Response.Write "        <tr>" & vbNewline
	Response.Write "          <td align=""center"" colspan=""2"">&nbsp;<br />" & vbNewline
	Response.Write "          <a href=""admin_home.asp""><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """ color=""" & strDefaultFontColor & """>Back to Admin Home</font></a></td>" & vbNewline
	Response.Write "        </tr>" & vbNewline
end if


response.write "      </table>"

WriteFooter
Response.End
%>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -