mysql - 经典 ASP 和 MySQL 的嵌套注释

标签 mysql vbscript asp-classic

我想我想实现的目标背后的想法类似于论坛/评论系统。将有一个主要主题,然后人们可以回复该主题并相互回复。

由于回复在数据库中的顺序与它们的显示方式完全不同,我认为最好的实现方式是在表中有一个 parent_id col,parent_id = 0 用于主题消息,然后回复具有与其对应的回复的相关 ID。

然后我可以使用递归函数以正确的顺序获取数据并像这样显示,例如:

父主题

回复

回复

回复回复

回复

回复回复

回复回复回复

回复

然而,这就是我被困的地方。我对 VBScript 很陌生,所以它可能非常简单,但我就是看不到。

任何帮助它的人都快把我逼疯了。

最佳答案

我想您是在寻求有关从数据库获取此信息所需代码的帮助吗?

这是显示所有“父”主题所需的代码:

Sub ShowParentTopics()
    Dim strSQL, objRS, objConn
    objConn.Open "connection string here"
    strSQL = "Select * From Topics Where parent_id=0"
    Set objRS = objConn.Execute(strSQL)
    Do Until objRS.EOF
        Response.Write("Title: " & objRS("Title") & "<br />")
        Response.Write("<a href=""?topic=" & objRS("ID") & """>Expand</a><hr />")
        objRS.MoveNext
    Loop
    objRS.Close
    Set objRS = Nothing
    objConn.Close
    Set objConn = Nothing
End Sub

要显示特定主题及其所有回复,您需要递归方法,这是一个应该有效的方法:

Sub ShowOneTopic(nTopicID)
    '//validation might be here.... make sure topic ID is numeric!//'
    Call RecursiveShowTopic nTopicID, 0
End Sub

Sub RecursiveShowTopic(nTopicID, nLevel)
    Dim strSQL, objRS, objConn
    Dim x, nChildID
    objConn.Open "connection string here"
    strSQL = "Select * From Topics Where ID=" & nTopicID
    Set objRS = objConn.Execute(strSQL)
    If Not(objRS.EOF) Then
        For x=1 To nLevel
            Response.Write("&nbsp;&nbsp;&nbsp;&nbsp;")
        Next
        If nLevel<1 Then
            Response.Write("Parent ")
        Else  
            Response.Write("Child topic level " & nLevel & " ")
        End If
        Response.Write("Title: " & objRS("Title") & "<br />")
    End If
    objRS.Close

    nChildID = 0
    strSQL = "Select ID From Topics Where parent_id=" & nTopicID
    Set objRS = objConn.Execute(strSQL)
    If Not(objRS.EOF) Then
        nChildID = CLng(objRS("ID"))
    End If
    objRS.Close
    Set objRS = Nothing
    objConn.Close
    Set objConn = Nothing

    If nChildID>0 Then
        Call RecursiveShowTopic nChildID, nLevel + 1
    End If
End Sub

使用查询字符串中的 ID 调用 ShowOneTopic,当单击某些父主题上的“展开”链接时,该 ID 将出现。

当然,您必须更改连接字符串、字段名称和格式,但这至少应该为您提供一些有用的东西。 :)

关于mysql - 经典 ASP 和 MySQL 的嵌套注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4714797/

相关文章:

mysql - 亚马逊网络服务 + ASP.NET MVC 3 + MySql

php - 如何使用正则表达式通过 MySQL 查询返回记录?

javascript - 将输出转换为 javascript 的批处理文件命令(net user 和 findstr)

vbscript - 通过 VBA 以编程方式配置 Office 2010 Word 功能区

MySQL LIKE 语句支持多个查询

MySql 根据其他行选择行

mysql date_format 需要作为字符串返回

encryption - UTF-8 ASP经典中的RC4加密和解密

mysql - (ASP) MS Access -> MySQL : Error in Select, 其中 [..] 字符串

c# - IIS6 在经典 ASP 网站下运行 ASP.NET 虚拟目录