数据库结构

表:分类

效果图

代码

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
Option Explicit
'=======================================================
'程序名称:ASP无限级分类代码
'程序来源:阿里西西,www.alixixi.com
'程序说明:提供无限级分类的完整演示,带数据库。
'=======================================================
dim conn,connstr,rs
set conn=server.CreateObject("adodb.connection")
set rs=server.CreateObject("adodb.recordset")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("class.mdb")
conn.Open connstr

Dim ModuleID,ModuleName,SqlQueryNum,FoundErr,ErrMsg,SucMsg
Dim InstallDir
ModuleID = request("ModuleID")
ModuleName = "分类"
If ModuleID=0 Then ModuleID=1
Dim strClassDir,ClassDir,HtmlFileDir,ChannelDir,ChannelPath
Dim moduleidu
Directory = "article"
%>

<table  cellspacing="1" cellpadding="3" border="0">
  <tr>
    <td align="right"><a href="?ModuleID=1">模块1</a> | <a href="?ModuleID=2">模块2</a> | <a href="?ModuleID=3">模块3</a> </td>
  </tr>
  <tr>
    <td width="*" align="right"><a href="?ModuleID=<%=ModuleID%>">分类管理首页</a> | <a href="?action=add&ModuleID=<%=ModuleID%>">新建分类</a> | <a href="?action=Orders&ModuleID=<%=ModuleID%>">一级分类排序</a> | <a href="?action=classOrders&ModuleID=<%=ModuleID%>">N级分类排序</a> | <a href="?action=resume&ModuleID=<%=ModuleID%>"><font color="blue">分类恢复</font> </td>
  </tr>
</table>
<%
Dim Action,Directory

Action = LCase(Request("action"))
Select Case LCase(Action)
Case "savenew"
Call savenew()
Case "savedit"
Call savedit()
Case "add"
Call ClassAdd()
Case "edit"
Call ClassEdit()
Case "del"
Call DelClass()
Case "deldir"
Call DelClassDir()
Case "orders"
Call orders()
Case "neworders"
Call updateorders()
Case "restore"
Call RestoreClass()
Case "classorders"
Call classorders()
Case "newclassorders"
Call updateclassorders()
Case "resume"
Call ResumeClass()
Case Else
Call showmain()
End Select
If FoundErr = True Then
Response.write(ErrMsg)
End If

''显示主菜单
Sub showmain()
Dim Rs,SQL,i,iCount,lCount,AddContentLink
iCount=1:lCount=2
Response.Write " <table cellspacing=""1"" cellpadding=""2"">"
Response.Write " <tr>"
Response.Write " <th width=""40%"">分类名称</th>"
Response.Write " <th width=""40%"">管理选项</th>"
Response.Write "</tr>" & vbNewLine
'If Not IsObject(Conn) Then ConnectionDatabase
SQL = "SELECT * FROM Classify WHERE ModuleID="& ModuleID &" ORDER BY RootID,Orders"
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open SQL, Conn, 1, 1
SqlQueryNum = SqlQueryNum + 1
If Rs.BOF And Rs.EOF Then
Response.Write " <tr> <td colspan=""3"">您还没有添加任何分类!</td></tr>"
End If
i = 0
Do While Not Rs.EOF
If (i mod 2) = 0 Then iCount=1:lCount=2 Else iCount=2:lCount=1
Response.Write " <tr>"
Response.Write " <td>"
Response.Write " "
If Rs("Depth") = 1 Then Response.Write "&nbsp;&nbsp;<font color=""#666666"">├</font>"
If Rs("Depth") > 1 Then
For i = 2 To Rs("Depth")
Response.Write "&nbsp;&nbsp;<font color=""#666666"">│</font>"
Next
Response.Write "&nbsp;&nbsp;<font color=""#666666"">├</font> "
End If
If Rs("ParentID") = 0 Then Response.Write ("<b>")
Response.Write Rs("ClassName")
If Rs("Child") > 0 Then Response.Write "(" & Rs("Child") & ")"
Response.Write " </td>" & vbNewLine
Response.Write " <td>"
Response.Write "<a href=""?action=add&ModuleID="&ModuleID&"&editid="
Response.Write Rs("ID")
Response.Write """>添加分类</a>"
Response.Write " | <a href=""?action=edit&ModuleID="&ModuleID&"&editid="
Response.Write Rs("ID")
Response.Write """>编辑分类</a>"
Response.Write " |"
Response.Write " "
If Rs("Child") < 1 Then
Response.Write " <a href=""?action=del&ModuleID="&ModuleID&"&editid="
Response.Write Rs("ID")
Response.Write """ οnclick=""return confirm('删除将包括该分类的所有文章,确定删除吗?')"">删除分类</a>"
Else
Response.Write " <a href=""#"" οnclick=""return confirm('该分类含有下属分类,必须先删除其下属分类方能删除本分类!')"">"
Response.Write " 删除分类</a>"
End If
Response.Write " </td>" & vbNewLine
Response.Write "</tr>" & vbNewLine
Rs.movenext
i = i + 1
Loop
Rs.Close
Set Rs = Nothing
Response.Write " <tr>"
Response.Write "<td colspan=""3"" class=""tablerow"&lCount&""">"
Response.Write "&nbsp;</td>"
Response.Write "</tr></form>"
Response.Write "</table>"
End Sub

''添加新类
Sub ClassAdd()
Dim NewID
Dim Rs,SQL,i,TitleColor
SQL = "SELECT MAX(ID) FROM Classify"
Set Rs = Conn.Execute(SQL)
If Rs.BOF And Rs.EOF Then
NewID = 1
Else
NewID = Rs(0) + 1
End If
If IsNull(NewID) Then NewID = 1
Rs.Close
%>
<table border="0" cellpadding="3" cellspacing="1">
  <tr>
    <th colspan="2">添加分类</th>
  </tr>
  <form name="myform" method="POST" action="?action=savenew">
    <input type="hidden" name="NewID" value="<%=NewID%>">
    <input type="hidden" name="ModuleID" value="<%=ModuleID%>">
    <tr>
      <td width="20%"><strong>分类名称:</strong></td>
      <td width="80%"><input type="text" name="ClassName" id="ClassName" size="35">
      </td>
    </tr>
    <tr>
      <td><strong>分类注释:</strong></td>
      <td><input type="text" name="Readme" size="60">
      </td>
    </tr>
    <tr>
      <td><strong>所属分类:</strong></td>
      <td><%
Response.Write " <select name=""class"">"
Response.Write "<option value=""0"">做为一级分类</option>"
SQL = "SELECT ID,Depth,ClassName FROM Classify WHERE ModuleID = "& ModuleID &" ORDER BY RootID,Orders"
Set Rs = Conn.Execute(SQL)
Do While Not Rs.EOF
Response.Write "<option value=""" & Rs("ID") & """ "
If Request("editid") <> "" And CLng(Request("editid")) = Rs("ID") Then Response.Write "selected"
Response.Write ">"
If Rs("Depth") = 1 Then Response.Write "&nbsp;&nbsp;├ "
If Rs("Depth") > 1 Then
For i = 2 To Rs("Depth")
Response.Write "&nbsp;&nbsp;│"
Next
Response.Write "&nbsp;&nbsp;├ "
End If
Response.Write Rs("ClassName") & "</option>" & vbCrLf
Rs.movenext
Loop
Rs.Close
Response.Write "</select>"
Set Rs = Nothing
%>
      </td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><p>
          <input type="button" οnclick="javascript:history.go(-1)" value="返回上一页" name="B1" class=button>
          &nbsp;&nbsp;
          <input type="submit" value="保存设置" name="B2" class="button">
      </td>
    </tr>
  </form>
</table>
<%
End Sub
'编辑类
Sub ClassEdit()
Dim Rs,SQL,RsObj,i,TitleColor
Set Rs = Conn.Execute("SELECT * FROM Classify WHERE ModuleID = " & ModuleID & " And ID = " & Request("editid"))
If Rs.BOF And Rs.EOF Then
FoundErr = True
ErrMsg = "数据库出现错误,没有此站点栏目!"
Rs.Close
Set Rs = Nothing
Exit Sub
End If
%>
<table border="0" cellpadding="3" cellspacing="1">
  <tr>
    <th colspan="2">编辑分类</th>
  </tr>
  <form name="myform" method="POST" action="?action=savedit">
    <input type="hidden" name="editid" value="<%=Request("editid")%>">
    <input type="hidden" name="ModuleID" value="<%=ModuleID%>">
    <tr>
      <td width="20%"><strong>分类名称:</strong></td>
      <td width="80%"><input type="text" name="ClassName" id="ClassName" size="35" value="<%=Rs("ClassName")%>">
      </td>
    </tr>
    <tr>
      <td><strong>分类注释:</strong></td>
      <td><input type="text" name="Readme" size="60" value="<%=Rs("Readme")%>">
      </td>
    </tr>
    <tr>
      <td><strong>所属分类:</strong></td>
      <td><%
Response.Write " <select name=""class"">"
Response.Write "<option value=""0"">做为一级分类</option>"
SQL = "SELECT ID,Depth,ClassName FROM Classify WHERE ModuleID = "& ModuleID &" ORDER BY RootID,Orders"
Set RsObj = Conn.Execute(SQL)
Do While Not RsObj.EOF
Response.Write "<option value=""" & RsObj("ID") & """ "
If CLng(Rs("ParentID")) = RsObj("ID") Then Response.Write "selected"
Response.Write ">"
If RsObj("Depth") = 1 Then Response.Write "&nbsp;&nbsp;├ "
If RsObj("Depth") > 1 Then
For i = 2 To RsObj("Depth")
Response.Write "&nbsp;&nbsp;│"
Next
Response.Write "&nbsp;&nbsp;├ "
End If
Response.Write RsObj("ClassName") & "</option>" & vbCrLf
RsObj.movenext
Loop
RsObj.Close
Response.Write "</select>"
Set RsObj = Nothing
%>
      </td>
    </tr>
    <tr>
      <td> </td>
      <td><p>
          <input type="button" οnclick="javascript:history.go(-1)" value="返回上一页" name="B1" class=button>
          &nbsp;&nbsp;
          <input type="submit" value="保存设置" name="B2" class="button">
      </td>
    </tr>
  </form>
</table>
<%
Set Rs = Nothing
End Sub
'检查
Sub CheckSave()
If Trim(Request("ClassName")) = "" Then
ErrMsg = ErrMsg + "<li>请输入分类名称。</li>"
Founderr = True
End If
If Not IsNumeric(Request("class")) Then
ErrMsg = ErrMsg + "<li>请选择所属分类。</li>"
Founderr = True
End If
If Trim(Request("Readme")) = "" Then
ErrMsg = ErrMsg + "<li>请输入分类说明。</li>"
Founderr = True
End If
If Len(Request.Form("ClassName")) => 25 Then
FoundErr = True
ErrMsg = ErrMsg + "<li>分类名称名称不能超过50个字符!</li>"
End If
If Len(Request.Form("Readme")) => 200 Then
FoundErr = True
ErrMsg = ErrMsg + "<li>栏目注释不能超过200个字符!</li>"
End If

End Sub
'保存新类
Sub savenew()
Dim ID,RootID,ParentID,Depth,Orders
Dim MaxRootID,ParentStr,ChildStr,newOrders
Dim Rs,SQL
'保存添加分类信息
CheckSave
If Founderr = True Then Exit Sub
If Request("class") <> "0" Then
SQL = "SELECT RootID,ID,Depth,Orders,ParentStr FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & Request("class")
Set Rs = Conn.Execute (SQL)
RootID = Rs(0)
ParentID = Rs(1)
Depth = Rs(2)
Orders = Rs(3)
If Depth + 1 > 20 Then
ErrMsg = "<li>本系统限制最多只能有20级子分类</li>"
Founderr = True
Exit Sub
End If
ParentStr = Rs(4)
Rs.Close
Else
SQL = "SELECT MAX(RootID) FROM Classify WHERE ModuleID = "& ModuleID
Set Rs = Conn.Execute (SQL)
MaxRootID = Rs(0) + 1
If IsNull(MaxRootID) Then MaxRootID = 1
Rs.Close
End If
SQL = "SELECT ID FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & Request("newID")
Set Rs = Conn.Execute (SQL)
If Not (Rs.EOF And Rs.BOF) Then
ErrMsg = "<li>您不能指定和别的分类一样的序号。</li>"
Founderr = True
Exit Sub
Else
ID = Request("newID")
End If
Rs.Close
Set Rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM Classify"
Rs.Open SQL, Conn, 1, 3
Rs.addnew
If Request("class") <> "0" Then
Rs("Depth") = Depth + 1
Rs("RootID") = RootID
Rs("ParentID") = Request.Form("class")
If ParentStr = "0" Then
Rs("ParentStr") = Request.Form("class")
Else
Rs("ParentStr") = ParentStr & "," & Request.Form("class")
End If
Else
Rs("Depth") = 0
Rs("RootID") = MaxRootID
Rs("ParentID") = 0
Rs("ParentStr") = 0
End If
Rs("ModuleID") = ModuleID
Rs("Child") = 0
Rs("ChildStr") = Trim(Request.Form("newID"))
Rs("ID") = Request.Form("newID")
Rs("Orders") = Request.Form("newID")
Rs("ClassName") = Trim(Request.Form("ClassName"))
Rs("Readme") = Trim(Request.Form("Readme"))
Rs("ShowCount") = 0
Rs.Update
Rs.Close
If Request("class") <> "0" Then
Dim nID
ParentStr = ParentStr & "," & Request.Form("class")
nID = Trim(Request.Form("newID"))
SQL = "SELECT ID,ParentStr,ChildStr FROM Classify WHERE ModuleID = "& ModuleID &" And ID in (" & ParentStr & ")"
Set Rs = Conn.Execute (SQL)
Do While Not Rs.EOF
ChildStr = Rs("ChildStr") & "," & nID
Conn.Execute ("UPDATE Classify SET ChildStr='"&ChildStr&"' WHERE ModuleID = "& ModuleID &" And ID = " & Rs("ID"))
Rs.movenext
Loop
Rs.Close
End If
CheckAndFixClass 0,1

SucMsg = "<li>恭喜您!分类添加成功。</li>"
Set Rs = Nothing
response.write(SucMsg)

End Sub
'保存编辑分类信息
Sub savedit()
Dim newID,MaxRootID,ParentID,Depth,Child
Dim ParentStr,RootID,iParentID,iParentStr
Dim trs,brs,mrs,Rsc,Rss,k
Dim nParentStr,mParentStr,ParentSql,ChildStr,nChildStr
Dim ArrChildStr,ii,ClassCount
Dim Rs,SQL,i
'保存编辑分类信息
If CLng(Request("editid")) = CLng(Request("class")) Then
ErrMsg = "<li>所属分类不能指定自己</li>"
Founderr = True
Exit Sub
End If
CheckSave
If Founderr = True Then Exit Sub
Set Rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & Request("editid")
Rs.Open SQL, Conn, 1, 3
newID = Rs("ID")
ParentID = Rs("ParentID")
iParentID = Rs("ParentID")
ParentStr = Rs("ParentStr")
ChildStr = Rs("ChildStr")
Depth = Rs("Depth")
Child = Rs("Child")
RootID = Rs("RootID")
If Child <> 0 And LCase(ClassDir) <> LCase(strClassDir) Then
ErrMsg = "<li>对不起!该分类中有下属分类不能修改分类目录!</li>"
Founderr = True
Exit Sub
End If
If Child <> 0 And ParentID <> Clng(Request("class")) Then
ErrMsg = "<li>对不起!该分类中有下属分类不能移动,请先移动其下属分类。</li>"
Founderr = True
Exit Sub
End If

If ParentID = 0 Then
If CLng(Request("class")) <> 0 Then
Set trs = Conn.Execute("SELECT RootID,TurnLink FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & Request("class"))
If RootID = trs(0) Then
ErrMsg = "<li>您不能指定该分类的下属分类作为所属分类</li>"
Founderr = True
Exit Sub
End If
If trs(1) = 1 Then
ErrMsg = "<li>该分类是外部连接,您不能指定该分类作为所属分类</li>"
Founderr = True
Exit Sub
End If
End If
Else
Set trs = Conn.Execute("SELECT ID FROM Classify WHERE ModuleID = "& ModuleID &" And ParentStr like '%" & ParentStr & "%' and ID=" & Request("class"))
If Not (tRs.EOF And tRs.BOF) Then
ErrMsg = "<li>您不能指定该分类的下属分类作为所属分类</li>"
Founderr = True
Exit Sub
End If
End If
If ParentID = 0 Then
ParentID = Rs("ID")
iParentID = 0
End If
Rs("ClassName") = Trim(Request.Form("ClassName"))
Rs("Readme") = Trim(Request.Form("Readme"))
Rs.Update
Rs.Close
Set Rs = Nothing
Set mrs = Conn.Execute("SELECT MAX(RootID) FROM Classify WHERE ModuleID="& ModuleID)
MaxRootID = mrs(0) + 1
'假如更改了所属分类
'需要更新其原来所属分类信息,包括深度、父级ID、分类数、排序
'需要更新当前所属分类信息
If CLng(ParentID) <> CLng(Request("class")) And Not (iParentID = 0 And CInt(Request("class")) = 0) Then
'如果原来不是一级分类改成一级分类
If iParentID > 0 And CInt(Request("class")) = 0 Then
'如果不是一级分类改成一级分类,更新子分类数据
'开始更新子分类
'ChildStr = "," & ChildStr
Set Rsc = Conn.Execute ("SELECT ID,ChildStr FROM Classify WHERE ModuleID = "& ModuleID &" And ID in (" & ParentStr & ")")
Do While Not Rsc.EOF
ArrChildStr = Split(Rsc("ChildStr"), ",")
nChildStr = ""
For ii = 0 to Ubound(ArrChildStr)
If ArrChildStr(ii) <> ChildStr Then
nChildStr = nChildStr & ArrChildStr(ii) & Chr(32)
End If
Next
nChildStr = Replace(Trim(nChildStr), Chr(32), ",")
'nChildStr = Replace(Rsc("ChildStr"), ChildStr, "")
Conn.Execute ("UPDATE Classify SET ChildStr='" & nChildStr & "' WHERE ModuleID = "& ModuleID &" And ID = " & Rsc("ID"))
Rsc.movenext
Loop
Rsc.Close
Set Rsc = Nothing
'更新子分类结束
'---------------------------------------------------
'更新当前分类数据
Conn.Execute ("UPDATE Classify set Depth=0,Orders=0,RootID=" & MaxRootID & ",ParentID=0,ParentStr='0' WHERE ID=" & newID)
ParentStr = ParentStr & ","
Set Rs = Conn.Execute("SELECT COUNT(ID) FROM Classify WHERE ModuleID = "& ModuleID &" And ParentStr like '%" & ParentStr & "%'")
ClassCount = Rs(0)
If IsNull(ClassCount) Then
ClassCount = 1
Else
ClassCount = ClassCount + 1
End If
'更新其原来所属分类数
Conn.Execute ("UPDATE Classify SET Child=Child-" & ClassCount & " WHERE ModuleID = "& ModuleID &" And ID=" & iParentID)
'更新其原来所属分类数据,排序相当于剪枝而不需考虑
For i = 1 To Depth
'得到其父类的父类的ID
Set Rs = Conn.Execute("SELECT ParentID FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & iParentID)
If Not (Rs.EOF And Rs.BOF) Then
iParentID = Rs(0)
Conn.Execute ("UPDATE Classify SET Child=Child-" & ClassCount & " WHERE ModuleID = "& ModuleID &" And ID=" & iParentID)
End If
Next
If Child > 0 Then
'更新其下属分类数据
'有下属分类,排序不需考虑,更新下属分类深度和一级排序ID(RootID)数据
'更新当前分类数据
i = 0
Set Rs = Conn.Execute("SELECT * FROM Classify WHERE ModuleID = "& ModuleID &" And ParentStr LIKE '%" & ParentStr & "%'")
Do While Not Rs.EOF
i = i + 1
mParentStr = Replace(Rs("ParentStr"), ParentStr, "")
Conn.Execute ("UPDATE Classify SET Depth=Depth-" & Depth & ",RootID=" & MaxRootID & ",ParentStr='" & mParentStr & "' WHERE ModuleID = "& ModuleID &" And ID=" & Rs("ID"))
Rs.movenext
Loop
End If
'------------------------------------------------------
ElseIf iParentID > 0 And CInt(Request("class")) > 0 Then
'将一个分类移动到其他分类下
'开始更新子分类
'ChildStr = "," & ChildStr
Set Rsc = Conn.Execute ("SELECT ID,ChildStr FROM Classify WHERE ModuleID = "& ModuleID &" And ID in (" & ParentStr & ")")
Do While Not Rsc.EOF
ArrChildStr = Split(Rsc("ChildStr"), ",")
nChildStr = ""
For ii = 0 to Ubound(ArrChildStr)
If ArrChildStr(ii) <> ChildStr Then
nChildStr = nChildStr & ArrChildStr(ii) & Chr(32)
End If
Next
nChildStr = Replace(Trim(nChildStr), Chr(32), ",")
'nChildStr = Replace(Rsc("ChildStr"), ChildStr, "")
Conn.Execute ("UPDATE Classify SET ChildStr='" & nChildStr & "' WHERE ModuleID = "& ModuleID &" And ID = " & Rsc("ID"))
Rsc.movenext
Loop
Rsc.Close
Set Rsc = Nothing
'更新子分类结束
'-----------------------------------------------------------
'获得所指定的分类的相关信息
Set trs = Conn.Execute("SELECT * FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & Request("class"))
'得到其下属分类数
ParentStr = ParentStr & ","
Set Rs = Conn.Execute("SELECT COUNT(ID) FROM Classify WHERE ModuleID = "& ModuleID &" And ParentStr like '%" & ParentStr & "%'")
ClassCount = Rs(0)
If IsNull(ClassCount) Then ClassCount = 1
'在获得移动过来的分类数后更新排序在指定分类之后的分类排序数据
Conn.Execute ("UPDATE Classify SET Orders=Orders + " & ClassCount & " + 1 WHERE RootID=" & trs("RootID") & " and Orders>" & trs("Orders") & "")
'更新当前分类数据
Conn.Execute ("UPDATE Classify SET Depth=" & trs("Depth") & "+1,Orders=" & trs("Orders") & "+1,RootID=" & trs("RootID") & ",ParentID=" & Request("class") & ",ParentStr='" & trs("ParentStr") & "," & trs("ID") & "' WHERE ModuleID = "& ModuleID &" And ID=" & newID)
i = 1
'如果有则更新下属分类数据
'深度为原有深度加上当前所属分类的深度
Set Rs = Conn.Execute("SELECT * FROM Classify WHERE ModuleID = "& ModuleID &" And ParentStr like '%" & ParentStr & "%' ORDER BY Orders")
Do While Not Rs.EOF
i = i + 1
iParentStr = trs("ParentStr") & "," & trs("ID") & "," & Replace(Rs("ParentStr"), ParentStr, "")
Conn.Execute ("UPDATE Classify SET Depth=Depth+" & trs("Depth") & "-" & Depth & "+1,Orders=" & trs("Orders") & "+" & i & ",RootID=" & trs("RootID") & ",ParentStr='" & iParentStr & "' WHERE ModuleID = "& ModuleID &" And ID=" & Rs("ID"))
Rs.movenext
Loop
ParentID = Request("class")
If RootID = trs("RootID") Then
'在同一分类下移动
'更新所指向的上级分类数,i为本次移动过来的分类数
'更新其父类分类数
Conn.Execute ("UPDATE Classify SET Child=Child+" & i & " WHERE ModuleID = "& ModuleID &" And (not ParentID=0) and ID=" & ParentID)
For k = 1 To trs("Depth")
'得到其父类的父类的分类ID
Set Rs = Conn.Execute("SELECT ParentID FROM Classify WHERE ModuleID = "& ModuleID &" And (not ParentID=0) and ID=" & ParentID)
If Not (Rs.EOF And Rs.BOF) Then
ParentID = Rs(0)
'更新其父类的父类分类数
Conn.Execute ("UPDATE Classify SET Child=Child+" & i & " WHERE ModuleID = "& ModuleID &" And (not ParentID=0) and  ID=" & ParentID)
End If
Next
'更新其原父类分类数
Conn.Execute ("UPDATE Classify SET Child=Child-" & i & " WHERE ModuleID = "& ModuleID &" And (not ParentID=0) and ID=" & iParentID)
'更新其原来所属分类数据
For k = 1 To Depth
'得到其原父类的父类的分类ID
Set Rs = Conn.Execute("SELECT ParentID FROM Classify WHERE ModuleID = "& ModuleID &" And (not ParentID=0) and ID=" & iParentID)
If Not (Rs.EOF And Rs.BOF) Then
iParentID = Rs(0)
'更新其原父类的父类分类数
Conn.Execute ("UPDATE Classify SET Child=Child-" & i & " WHERE ModuleID = "& ModuleID &" And (not ParentID=0) and  ID=" & iParentID)
End If
Next
Else
'更新所指向的上级分类数,i为本次移动过来的分类数
'更新其父类分类数
Conn.Execute ("UPDATE Classify SET Child=Child+" & i & " WHERE ModuleID = "& ModuleID &" And ID=" & ParentID)
For k = 1 To trs("Depth")
'得到其父类的父类的分类ID
Set Rs = Conn.Execute("SELECT ParentID FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & ParentID)
If Not (Rs.EOF And Rs.BOF) Then
ParentID = Rs(0)
'更新其父类的父类分类数
Conn.Execute ("UPDATE Classify SET Child=Child+" & i & " WHERE ModuleID = "& ModuleID &" And ID=" & ParentID)
End If
Next
'更新其原父类分类数
Conn.Execute ("UPDATE Classify SET Child=Child-" & i & " WHERE ModuleID = "& ModuleID &" And ID=" & iParentID)
For k = 1 To Depth
'得到其原父类的父类的分类ID
Set Rs = Conn.Execute("SELECT ParentID FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & iParentID)
If Not (Rs.EOF And Rs.BOF) Then
iParentID = Rs(0)
'更新其原父类的父类分类数
Conn.Execute ("UPDATE Classify SET Child=Child-" & i & " WHERE ModuleID = "& ModuleID &" And ID=" & iParentID)
End If
Next
End If
'-----------------------------------------------
'开始更新子分类
SQL = "SELECT ID,ParentID,ParentStr,ChildStr FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & Request("class")
Set Rss = Conn.Execute (SQL)
If Rss("ParentID") <> 0 Then
'如果是一级分类移动到其它一级分类的子分类
nChildStr = Rss("ChildStr") & "," & Request("editid")
Conn.Execute ("UPDATE Classify SET ChildStr='"&nChildStr&"' WHERE ModuleID = "& ModuleID &" And ID = " & Rss("ID"))
SQL = "SELECT ID,ParentStr,ChildStr FROM Classify WHERE ModuleID = "& ModuleID &" And ID in (" & Rss("ParentStr") & ")"
Set Rsc = Conn.Execute (SQL)
Do While Not Rsc.EOF
nChildStr = Rsc("ChildStr") & "," & Request("editid")
Conn.Execute ("UPDATE Classify SET ChildStr='"&nChildStr&"' WHERE ModuleID = "& ModuleID &" And ID = " & Rsc("ID"))
Rsc.movenext
Loop
Rsc.Close
Set Rsc = Nothing
Else
'如果是一级分类移动到其它一级分类,执行以下更新
nChildStr = Rss("ChildStr") & "," & Request("editid")
Conn.Execute ("UPDATE Classify SET ChildStr='"&nChildStr&"' WHERE ModuleID = "& ModuleID &" And ID = " & Rss("ID"))
End If
Rss.Close
Set Rss = Nothing
'更新子分类结束
Else
'如果原来是一级分类改成其他分类的下属分类
'更新一级分类的子分类
'开始更新子分类
SQL = "SELECT ID,ParentID,ParentStr,ChildStr FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & CLng(Request("class"))
Set Rss = Conn.Execute (SQL)
If Rss("ParentID") <> 0 Then
'如果是一级分类移动到其它一级分类的子分类
nChildStr = Rss("ChildStr") & "," & ChildStr
Conn.Execute ("UPDATE Classify SET ChildStr='"&nChildStr&"' WHERE ModuleID = "& ModuleID &" And ID = " & Rss("ID"))
SQL = "SELECT ID,ParentStr,ChildStr FROM Classify WHERE ModuleID = "& ModuleID &" And ID in (" & Rss("ParentStr") & ")"
Set Rsc = Conn.Execute (SQL)
Do While Not Rsc.EOF
nChildStr = Rsc("ChildStr") & "," & ChildStr
Conn.Execute ("UPDATE Classify SET ChildStr='"&nChildStr&"' WHERE ModuleID = "& ModuleID &" And ID = " & Rsc("ID"))
Rsc.movenext
Loop
Rsc.Close
Set Rsc = Nothing
Else
'如果是一级分类移动到其它一级分类,执行以下更新
nChildStr = Rss("ChildStr") & "," & ChildStr
Conn.Execute ("UPDATE Classify SET ChildStr='"&nChildStr&"' WHERE ModuleID = "& ModuleID &" And ID = " & Rss("ID"))
End If
Rss.Close
Set Rss = Nothing
'更新子分类结束
'---------------------------------------------------
'得到所指定的分类的相关信息
Set trs = Conn.Execute("SELECT * FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & CLng(Request("class")))
Set Rs = Conn.Execute("SELECT COUNT(ID) FROM Classify WHERE ModuleID = "& ModuleID &" And RootID=" & RootID)
ClassCount = Rs(0)
Rs.Close
'更新所指向的上级分类数,i为本次移动过来的分类数
ParentID = Request("class")
'更新其父类分类数
Conn.Execute ("UPDATE Classify SET Child=Child+" & ClassCount & " WHERE ModuleID = "& ModuleID &" And ID=" & ParentID)
For k = 1 To trs("Depth")
'得到其父类的父类的分类ID
Set Rs = Conn.Execute("SELECT ParentID FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & ParentID)
If Not (Rs.EOF And Rs.BOF) Then
ParentID = Rs(0)
'更新其父类的父类分类数
Conn.Execute ("UPDATE Classify SET Child=Child+" & ClassCount & " WHERE ModuleID = "& ModuleID &" And ID=" & ParentID)
End If

Next
'在获得移动过来的分类数后更新排序在指定分类之后的分类排序数据
Conn.Execute ("UPDATE Classify SET Orders=Orders + " & ClassCount & " + 1 WHERE ModuleID = "& ModuleID &" And RootID=" & trs("RootID") & " and Orders>" & trs("Orders") & "")
i = 0
Set Rs = Conn.Execute("SELECT * FROM Classify WHERE ModuleID = "& ModuleID &" And RootID=" & RootID & " ORDER BY Orders")
Do While Not Rs.EOF
i = i + 1
If Rs("ParentID") = 0 Then
If trs("ParentStr") = "0" Then
ParentStr = trs("ID")
Else
ParentStr = trs("ParentStr") & "," & trs("ID")
End If
Conn.Execute ("UPDATE Classify SET Depth=Depth+" & trs("Depth") & "+1,Orders=" & trs("Orders") & "+" & i & ",RootID=" & trs("RootID") & ",ParentStr='" & ParentStr & "',ParentID=" & CLng(Request("class")) & " WHERE ModuleID = "& ModuleID &" And ID=" & Rs("ID"))
Else
If trs("ParentStr") = "0" Then
ParentStr = trs("ID") & "," & Rs("ParentStr")
Else
ParentStr = trs("ParentStr") & "," & trs("ID") & "," & Rs("ParentStr")
End If
Conn.Execute ("UPDATE Classify SET Depth=Depth+" & trs("Depth") & "+1,Orders=" & trs("Orders") & "+" & i & ",RootID=" & trs("RootID") & ",ParentStr='" & ParentStr & "' WHERE ModuleID = "& ModuleID &" And ID=" & Rs("ID"))
End If
Rs.movenext
Loop
'------------------------------------
End If
End If
Set Rs = Nothing
Set mrs = Nothing
Set trs = Nothing

CheckAndFixClass 0,1
SucMsg = "<li>恭喜您!分类修改成功。</li>"
response.write(SucMsg)

End Sub

Sub DelClass()
Dim ChildStr,nChildStr
Dim Rss,Rsc
Dim Rs,SQL
'On Error Resume Next
Set Rs = Conn.Execute("SELECT ParentStr,Child,Depth,ParentID FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & Request("editid"))
If Not (Rs.EOF And Rs.BOF) Then
If Rs(1) > 0 Then
ErrMsg = "<li>该分类含有下属分类,请删除其下属分类后再进行删除本分类的操作</li>"
Founderr = True
Exit Sub
End If
If Rs(3) > 0 Then
ChildStr = "," & Request("editid")
SQL = "SELECT ID,ParentStr FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & Request("editid")
Set Rss = Conn.Execute (SQL)
SQL = "SELECT ID,ChildStr FROM Classify WHERE ModuleID = "& ModuleID &" And ID in (" & Rss("ParentStr") & ")"
Set Rsc = Conn.Execute (SQL)
Do While Not Rsc.EOF
nChildStr = Replace(Rsc("ChildStr"), ChildStr, "")
Conn.Execute ("UPDATE Classify SET ChildStr='"&nChildStr&"' WHERE ModuleID = "& ModuleID &" And ID = " & Rsc("ID"))
Rsc.movenext
Loop
Rsc.Close
Set Rsc = Nothing
Set Rss = Nothing
End If
If Rs(2) > 0 Then
Conn.Execute ("UPDATE Classify set Child=Child-1 WHERE ModuleID = "& ModuleID &" And ID in (" & Rs(0) & ")")
End If
SQL = "DELETE FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & Request("editid")
Conn.Execute (SQL)
Call DelRelated
End If
Set Rs = Nothing
Conn.Execute("UPDATE Classify SET Child=0 WHERE ModuleID="& ModuleID &" And Child<0")
CheckAndFixClass 0,1

response.write ("恭喜您!分类删除成功。")
End Sub

Sub ResumeClass()
CheckAndFixClass 0,1
Response.Redirect Request.ServerVariables("HTTP_REFERER")
End Sub

Sub CheckAndFixClass(ParentID,Orders)
Dim Rs,Child,ParentStr
If ParentID=0 Then
Conn.Execute("UPDATE Classify SET Depth=0,ParentStr='0' WHERE ModuleID="& ModuleID &" And ParentID=0")
End If
Set Rs=Conn.Execute("SELECT ID,RootID,ParentStr,Depth FROM Classify WHERE ModuleID="& ModuleID &" And ParentID="&ParentID&" ORDER BY RootID,Orders")
Do while Not Rs.EOF
If Rs(2)<>"0" Then
ParentStr=Rs(2)&","&Rs(0)
Else
ParentStr=Rs(0)
End If
Conn.Execute "UPDATE Classify SET Depth="&Rs(3)+1&",ParentStr='"&ParentStr&"',RootID="&rs(1)&" WHERE ModuleID="& ModuleID &" And ParentID="&Rs(0)&"",Child
Conn.Execute("UPDATE Classify SET Child="&Child&",Orders="&Orders&" WHERE ModuleID="& ModuleID &" And ID="&Rs(0)&"")
Orders=Orders+1
CheckAndFixClass Rs(0),Orders
Rs.MoveNext
Loop
Set Rs=Nothing
End Sub

Sub DelRelated()
'On Error Resume Next
'删除该分类下的所有文章、评论或其它相关内容
End Sub

Sub DelClassDir()
'On Error Resume Next
'删除分类目录操作
response.write ("恭喜您!分类目录删除成功。")
End Sub

Sub Orders()
Dim Rs,SQL,i,iCount,lCount
Response.Write " <table border=""0"" cellspacing=""1"" cellpadding=""3"">" & vbCrLf
Response.Write " <tr>" & vbCrLf
Response.Write " <th colspan=""2"">分类一级分类重新排序修改(请在相应分类的排序表单内输入相应的排列序号) </th>"
Response.Write " </tr>" & vbCrLf
i=0:iCount=1:lCount=1
SQL = "SELECT * FROM Classify WHERE ModuleID = "& ModuleID &" And ParentID=0 ORDER BY RootID"
Set Rs = Conn.Execute (SQL)
If Rs.BOF And Rs.EOF Then
ErrMsg = "<li>还没有相应的" & ModuleName & "分类。</li>"
Founderr = True
Exit Sub
Else
Do While Not Rs.EOF
If (i mod 2) = 0 Then iCount=1:lCount=2 Else iCount=2:lCount=1
Response.Write "<form action=""?action=newOrders"" method=""post""><tr>" & vbCrLf
Response.Write " <td align=""right"">"
Response.Write Rs("ClassName") & "</td>" & vbCrLf
Response.Write "<td><input type=""hidden"" name=""ModuleID"" value=""" & ModuleID & """><input type=""text"" name=""OrderID"" size=""4"" value=""" & Rs("RootID") & """><input type=""hidden"" name=""cID"" value=""" & Rs("RootID") & """>&nbsp;&nbsp;<input type=""submit"" name=""submit2"" class=""button"" value=""修 改""></td></tr></form>" & vbCrLf
Rs.movenext
i=i+1
Loop
End If
Rs.Close
Set Rs = Nothing
Response.Write " <tr><td class=""tablerow"&lCount&""" colspan=""2"">" & vbCrLf
Response.Write " <font color=""red"">请注意,这里一定<B>不能填写相同的序号</B>,否则非常难修复!</font></td>" & vbCrLf
Response.Write " </tr>" & vbCrLf
Response.Write "</table>" & vbCrLf
End Sub

Sub updateOrders()
Dim cID
Dim OrderID
Dim ClassName
Dim Rs
cID = Replace(Request.Form("cID"), "'", "")
OrderID = Replace(Request.Form("OrderID"), "'", "")
Set Rs = Conn.Execute("SELECT ID FROM Classify WHERE ModuleID = "& ModuleID &" And RootID=" & OrderID)
If Rs.BOF And Rs.EOF Then
response.write ("恭喜您!设置成功,请返回。")
Conn.Execute ("UPDATE Classify SET RootID=" & OrderID & " WHERE ModuleID = "& ModuleID &" And RootID=" & cID)
Else
ErrMsg = "<li>请不要和其他分类设置相同的序号</li>"
Founderr = True
Exit Sub
End If

Set Rs = Nothing
End Sub

Sub classOrders()
Dim Rs,i,SQL,iCount,lCount,n
Dim trs
Dim upOrders
Dim doOrders
n=0:iCount=1:lCount=2
Response.Write " <table border=""0"" cellspacing=""1"" cellpadding=""2"">" & vbCrLf
Response.Write " <tr>" & vbCrLf
Response.Write " <th colspan=""2"">分类N级分类重新排序修改(请在相应分类的排序表单内输入相应的排列序号)"
Response.Write " </th>"
Response.Write " </tr>" & vbCrLf
Set Rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM Classify WHERE ModuleID = "& ModuleID &" ORDER BY RootID,Orders"
Rs.Open SQL, Conn, 1, 1
If Rs.BOF And Rs.EOF Then
Response.Write "还没有相应的分类。"
Else
Do While Not Rs.EOF
If (n mod 2) = 0 Then iCount=1:lCount=2 Else iCount=2:lCount=1
Response.Write "<form action=""?action=newclassOrders&ModuleID=" & ModuleID & """ method=""post""><tr><td width=""50%"">" & vbCrLf
If Rs("Depth") = 1 Then Response.Write "&nbsp;&nbsp;<font color=""#666666"">├</font>"
If Rs("Depth") > 1 Then
For i = 2 To Rs("Depth")
Response.Write "&nbsp;&nbsp;<font color=""#666666"">│</font>"
Next
Response.Write "&nbsp;&nbsp;<font color=""#666666"">├</font> "
End If
If Rs("ParentID") = 0 Then Response.Write ("<b>")
Response.Write Rs("ClassName")
If Rs("Child") > 0 Then Response.Write "(" & Rs("Child") & ")"
Response.Write "</td><td width=""50%"">" & vbCrLf
If Rs("ParentID") > 0 Then
Set trs = Conn.Execute("SELECT COUNT(*) FROM Classify WHERE ModuleID = "& ModuleID &" And ParentID=" & Rs("ParentID") & " And Orders<" & Rs("Orders") & "")
upOrders = trs(0)
If IsNull(upOrders) Then upOrders = 0

Set trs = Conn.Execute("SELECT COUNT(*) FROM Classify WHERE ModuleID = "& ModuleID &" And ParentID=" & Rs("ParentID") & " And Orders>" & Rs("Orders") & "")
doOrders = trs(0)
If IsNull(doOrders) Then doOrders = 0
If upOrders > 0 Then
Response.Write "<select name=""upOrders"" size=""1""><option value=""0"">↑</option>" & vbCrLf
For i = 1 To upOrders
Response.Write "<option value=""" & i & """>↑" & i & "</option>" & vbCrLf
Next
Response.Write "</select>"
End If
If doOrders > 0 Then
If upOrders > 0 Then Response.Write "&nbsp;"
Response.Write "<select name=""doOrders"" size=""1""><option value=""0"">↓</option>" & vbCrLf
For i = 1 To doOrders
Response.Write "<option value=""" & i & """>↓" & i & "</option>" & vbCrLf
Next
Response.Write "</select>" & vbCrLf
End If
If doOrders > 0 Or upOrders > 0 Then
Response.Write "<input type=""hidden"" name=""editID"" value=""" & Rs("ID") & """>&nbsp;<input type=""submit"" name=""submit2"" class=""button"" value=""修 改"">" & vbCrLf
End If
Else
Response.Write "&nbsp;"
End If
Response.Write "</td></tr></form>" & vbCrLf
upOrders = 0
doOrders = 0
Rs.movenext
n=n+1
Loop
End If
Rs.Close
Set Rs = Nothing
Response.Write "</table>"
End Sub

Sub updateclassOrders()
Dim ParentID,Orders,ParentStr,Child
Dim upOrders,doOrders,oldOrders
Dim trs,ii
Dim Rs,i
If Not IsNumeric(Request("editID")) Then
ErrMsg = ErrMsg & "<li>非法的参数!</li>"
Founderr = True
Exit Sub
End If
If Request("ModuleID") = "" Then
ErrMsg = ErrMsg & "<li>非法的系统参数!</li>"
Founderr = True
Exit Sub
End If
If Request("uporders") <> "" And Not CInt(Request("uporders")) = 0 Then
If Not IsNumeric(Request("uporders")) Then
ErrMsg = ErrMsg & "<li>非法的参数!</li>"
Founderr = True
Exit Sub
ElseIf CInt(Request("uporders")) = 0 Then
ErrMsg = ErrMsg & "<li>请选择要提升的数字!</li>"
Founderr = True
Exit Sub
End If
Set Rs = Conn.Execute("SELECT ParentID,orders,ParentStr,Child FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & Request("editid"))
ParentID = Rs(0)
Orders = Rs(1)
ParentStr = Rs(2) & "," & Request("editid")
Child = Rs(3)
i = 0
If Child > 0 Then
Set Rs = Conn.Execute("SELECT COUNT(*) FROM Classify WHERE ModuleID="& ModuleID &" And ParentStr like '%" & ParentStr & "%'")
oldOrders = Rs(0)
Else
oldOrders = 0
End If

Set Rs = Conn.Execute("SELECT ID,Orders,Child,ParentStr FROM Classify WHERE ModuleID = "& ModuleID &" And ParentID=" & ParentID & " and Orders<" & Orders & " ORDER BY Orders desc")
Do While Not Rs.EOF
i = i + 1
If CInt(Request("upOrders")) >= i Then
If Rs(2) > 0 Then
ii = 0
Set trs = Conn.Execute("SELECT ID,Orders FROM Classify WHERE ModuleID = "& ModuleID &" And ParentStr like '%" & Rs(3) & "," & Rs(0) & "%' ORDER BY Orders")
If Not (tRs.EOF And tRs.BOF) Then
Do While Not tRs.EOF
ii = ii + 1
Conn.Execute ("UPDATE Classify SET Orders=" & Orders & "+" & oldOrders & "+" & ii & " WHERE ModuleID = "& ModuleID &" And ID=" & trs(0))
trs.movenext
Loop
End If
End If
Conn.Execute ("UPDATE Classify SET Orders=" & Orders & "+" & oldOrders & " WHERE ModuleID = "& ModuleID &" And ID=" & Rs(0))
If CInt(Request("upOrders")) = i Then upOrders = Rs(1)
End If
Orders = Rs(1)
Rs.movenext
Loop

Conn.Execute ("UPDATE Classify SET Orders=" & upOrders & " WHERE ModuleID = "& ModuleID &" And ID=" & Request("editid"))
If Child > 0 Then
i = upOrders
Set Rs = Conn.Execute("SELECT ID FROM Classify WHERE ModuleID = "& ModuleID &" And ParentStr like '%" & ParentStr & "%' ORDER BY Orders")
Do While Not Rs.EOF
i = i + 1
Conn.Execute ("UPDATE Classify SET Orders=" & i & " WHERE ModuleID = "& ModuleID &" And ID=" & Rs(0))
Rs.movenext
Loop
End If
Set Rs = Nothing
Set trs = Nothing
ElseIf Request("doOrders") <> "" Then
If Not IsNumeric(Request("doOrders")) Then
ErrMsg = ErrMsg & "<li>非法的参数!</li>"
Founderr = True
Exit Sub
ElseIf CInt(Request("doOrders")) = 0 Then
ErrMsg = ErrMsg & "<li>请选择要下降的数字!</li>"
Founderr = True
Exit Sub
End If
Set Rs = Conn.Execute("SELECT ParentID,Orders,ParentStr,Child FROM Classify WHERE ModuleID = "& ModuleID &" And ID=" & Request("editID"))
ParentID = Rs(0)
Orders = Rs(1)
ParentStr = Rs(2) & "," & Request("editid")
Child = Rs(3)
i = 0
If Child > 0 Then
Set Rs = Conn.Execute("SELECT COUNT(*) FROM Classify WHERE ModuleID = "& ModuleID &" And ParentStr like '%" & ParentStr & "%'")
oldOrders = Rs(0)
Else
oldOrders = 0
End If
Set Rs = Conn.Execute("SELECT ID,Orders,Child,ParentStr FROM Classify WHERE ModuleID = "& ModuleID &" And ParentID=" & ParentID & " and Orders>" & Orders & " ORDER BY Orders")
Response.Write "<li>"&ModuleID&" 错误参数!</li>"
Do While Not Rs.EOF
i = i + 1
If CInt(Request("doOrders")) >= i Then
If Rs(2) > 0 Then
ii = 0
Set trs = Conn.Execute("SELECT ID,Orders FROM Classify WHERE ModuleID = "& ModuleID &" And ParentStr like '%" & Rs(3) & "," & Rs(0) & "%' ORDER BY Orders")
If Not (tRs.EOF And tRs.BOF) Then
Do While Not tRs.EOF
ii = ii + 1
Conn.Execute ("UPDATE Classify set Orders=" & Orders & "+" & ii & " WHERE ModuleID = "& ModuleID &" And ID=" & trs(0))
trs.movenext
Loop
End If
End If
Conn.Execute ("UPDATE Classify SET Orders=" & Orders & " WHERE ModuleID = "& ModuleID &" And ID=" & Rs(0))
If CInt(Request("doOrders")) = i Then doOrders = Rs(1)
End If
Orders = Rs(1)
Rs.movenext
Loop
Conn.Execute ("UPDATE Classify SET Orders=" & doOrders & " WHERE ModuleID = "& ModuleID &" And ID=" & Request("editid"))
If Child > 0 Then
i = doOrders
Set Rs = Conn.Execute("SELECT ID FROM Classify WHERE ModuleID = "& ModuleID &" And ParentStr like '%" & ParentStr & "%' ORDER BY Orders")
Do While Not Rs.EOF
i = i + 1
Conn.Execute ("UPDATE Classify SET Orders=" & i & " WHERE ModuleID = "& ModuleID &" And ID=" & Rs(0))
Rs.movenext
Loop
End If
End If
Set Rs = Nothing
Set trs = Nothing

Response.redirect "?action=classOrders&ModuleID=" & ModuleID
Response.End
End Sub

Sub RestoreClass()
Dim Rs,i
i = 0
Set Rs = Conn.Execute("SELECT ID FROM Classify WHERE ModuleID="& ModuleID &" ORDER BY RootID,Orders")
Do While Not Rs.EOF
i = i + 1
Conn.Execute ("UPDATE Classify SET RootID=" & i & ",Depth=0,Orders=0,ParentID=0,ParentStr='0',Child=0, ChildStr='"&Rs(0)&"' WHERE ModuleID = "& ModuleID &" And ID=" & Rs(0))
Rs.movenext
Loop
Set Rs = Nothing

response.write("<li>复位成功,请返回做分类归属设置。</li>")
End Sub

%>

ASP无限级分类代码相关推荐

  1. php修改新闻分类代码,完整的新闻无限级分类代码,可添加,删除,移动,修改

    //连接数据库教程 $link = mysql教程_connect('localhost','root','密码') or die(mysql_error()); mysql_select_db('s ...

  2. python 树状图代码_Python 无限级分类树状结构生成算法 「实用代码」

    def generate_tree(source, parent): tree = [] for item in source: if item["parent"] == pare ...

  3. php 无级分类源代码,php+mysql无限级分类程序代码

    无限级分类主要就是数据库中表的存储,一个是父ID,一个是子ID通过他们来查询父级关系,然后出来我们想要的 表结构:id字段为分类标识,name字段为分类名,father_id字段为所属父分类的id,p ...

  4. ASP.NET 无限级分类实现实例(深度字段)

    下图中红色箭头是父类 而且属于根目录级别. 下面个字段为:ID 父ID 类型名称 深度 排序 前面3个字段没有什么可解释的,做过无限级分类设计的人都应该清楚 而第5个字段排序字段ID:43的23排序代 ...

  5. php无限分类原理,php 递归无限级分类原理和实现代码

    递归无限级分类的原理: 每一个分类都记录它的父级id,当为顶级分类时,父级id为0.这样无论哪个分类,都可以通过父级id一层一层去查明它的所有父级,以便清楚知道它所属何种分类,层级深度为几. 对数据进 ...

  6. .net简单算法实现无限级分类(一)

    在项目中我们往往需要实现无限级分类,而网上的.NET的例子不是很多,asp的倒是不少,这个算法是我根据网上的asp的例子在结合.net中的TREEVIEW控件来实现多级甚至无限级分类.      对于 ...

  7. 存储过程实现无限级分类(3)

    存储过程实现无限级分类(3) 最后一步显示分类(只是一条select语句) CREATE PROCEDURE sp_Column_List   AS SELECT Column_ID, Column_ ...

  8. php数组无限文类,php把无限级分类生成数组的类

    你是否遇到需要把无限级分类循环出来,是不是很头痛. 比如,要循环出一个SELECT,或一个TABLE,要写一大堆判断. 我的做法是生成数组,可以重复调用,直接循环数组就行了.为了方便,把它写成了类:c ...

  9. jquery实现层级显示 效果图_php运用无限级分类实现评论及回复功能

    经常在各大论坛或新闻板块详情页面下边看到评论功能,当然不单单是直接发表评论内容那么简单,可以对别人的评论进行回复,别人又可以对你的回复再次评论或回复,如此反复,理论上可以说是没有休止; 从技术角度分析 ...

最新文章

  1. Fisher_Yates算法
  2. (读) 周鸿祎重新思考360(有感)
  3. android布局属性
  4. 存储新技术之“连续数据保护(CDP)”
  5. CentOS 7 MySql 解压版安装配置
  6. Java基础学习-HelloWorld案例常见问题
  7. 疫情挡不住上市步伐:视频模拟敲锣 A股云上市了解一下
  8. 【面向代码】学习 Deep Learning(四) Stacked Auto-Encoders(SAE)
  9. C# 怎么生成DLL文件(转)
  10. “LED+智能”在公路隧道照明的应用研究
  11. USB Repair(usb设备修复工具)官方正式版V8.0.3.1069 | u盘修复软件下载 | u盘修复软件哪个最好?
  12. 第七届山东理工大学ACM趣味编程循环赛 Round#1 sdut4109 玄黄的字符串
  13. uni-app 二维码生成器分享
  14. mysql useing_mysql中using where,using index
  15. excel 查找/替换 回车键
  16. 打码平台php源码,正方验证码识别(非打码平台)(已解决运行出现4个#)
  17. Crawlscrapy获取果壳问答信息
  18. 快手极速版自动翻视频
  19. centos 网卡设置
  20. 701-简单易懂的进制转换方法

热门文章

  1. Java是怎么解决可见性问题的
  2. oracle层级计算推演,(特价书)Oracle 高性能SQL引擎剖析:SQL优化与调优机制详解(资深Oracle专家黄玮十年磨一剑,盖国强作序力荐)(china-pub首发)...
  3. oracle ocp证书有样式,终于收到OCP证书拉,散分散分庆祝解决办法
  4. 计算机辅助写字技术,计算机辅助写字教学论文.doc
  5. 收益发放资金回流链路系统的开发
  6. 完整的模糊推理系统介绍以及matlab中从零实现(下篇)
  7. 没想到,中国超融合市场第一竟然是它
  8. Fortran的堆栈溢出解决方法
  9. 中国互联网25年,让历史照进未来(下)
  10. 【Matlab】复化梯形公式求积分、求二重积分