Полагаю, вы просите помощи с кодом, необходимым для получения этого из базы данных?
Вот код, необходимый для отображения всех «родительских» тем:
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(" ")
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
Вызов ShowOneTopic
с идентификатором из строки запроса, который будет присутствовать при нажатии на ссылку «развернуть»родительская тема.
Конечно, вам придется изменить строку подключения, имена полей и форматирование, но это должно по крайней мере дать вам кое-что для работы.:)