Databasen skulle kanske kunna se ut såhär?
Namn - Beskrivning - Typ
ID - Tråden/Inlägget´s ID - Räknare
Headline - Tråden/Inlägget´s Rubrik - Text
Text - Tråden/Inläggets`s innehåll - PM
Parent - Denna kolumn ska innehålla det id tråden har som inlägget har postats i - Tal
Date - Datumet - Datum/Tid
User - Användarens Namn - Text
Då kommer vi till koden
viewforum.asp
Dim RS
'Skapar ett RecordSet där vi hämtar ut alla trådar
Set RS = Conn.Execute("Select * From forum Where parent = 0")
'Kollar om det finns några trådar
If RS.EOF Then
Response.Write "Inga Trådar har skapats"
Else
'Om det fanns några trådar så slumpas dom ut här
Do Until RS.EOF
Response.Write "<a href=""viewtopic.asp?id=" & RS("id") & ">" & RS("headline") & " - " & RS("date") & "</a><br>"
RS.Movenext
Loop
End if
Response.Write "<a href=""newtopic.asp"">Skriv en ny tråd</a>"
viewtopic.asp
Dim RS
'Vi skapar ett RecordSet som hämtar ut den post som har det id som finns i Request.Querystring("id")
Set RS = Conn.Execute("Select * From forum Where id = "& Request.Querystring("id") & " AND parent = 0")
'Vi kollar om tråden finns
If RS.EOF Then
Response.Write "Tråden finns inte"
Else
'Om den finns skriver vi ut informationen från den
Response.Write "Rubrik:" & RS("headline") & "<br>"
Response.Write "Datum:" & RS("date") & "<br>"
Response.Write "Användare:" & RS("user") & "<br>"
Response.Write "Inlägg:<br>" & RS("text") & "<br>"
Response.Write "<br><br><br>"
'Vi Stänger här det RecordSet vi skapade
RS.Close
Set RS = Nothing
Response.Write "Svar<br>"
'Här Skapar vi ett nytt RecordSet som hämtar alla inlägg som tillhör tråden vi nyss hämtade
Set RS = Conn.Execute("Select * From forum Where parent = " & Request.Querystring("id") & "")
'Vi kollar om det finns några inlägg som tillhör tråden
If RS.EOF Then
Response.Write "Ingen har svarat på denna tråd"
Else
'Om det finns inlägg som tillhör tråden loopar vi ut alla inlägg
Do Until RS.EOF
'Vi skriver ut informationen här
Response.Write "Rubrik:" & RS("headline") & "<br>"
Response.Write "Datum:" & RS("date") & "<br>"
Response.Write "Användare:" & RS("user") & "<br>"
Response.Write "Inlägg:<br>" & RS("text") & "<br>"
Response.Write "<br><br>"
'Vi avslutar våran loop
RS.Movenext
Loop
End if
RS.Close
Set RS = Nothing
End if
Response.Write "<a href=newtopic.asp?id=" & Request.Querystring("id") & ">Skriv ett svar på denna tråd</a>"
Newtopic.asp
<%
Dim ID,Action,RS
'Vi skapar två variablar
ID = Request.Querystring("id")
Action = Request.Querystring("action")
'Vi kollar om variabeln Action är tom
If IsNull(Action) Then
'Vi kollar om variabeln ID är tom
IF NOT IsNull(ID) Then
Set RS = Conn.Execute("Select headline From forum Where id = " & ID & "")
Response.Write "Du skriver ett svar till tråden " & RS(0)
RS.Close : Set RS = Nothing
End if
%>
<form method="post" action="newtopic.asp?id=<%= ID%>&action=do">
<br>
Rubrik:<br>
<input type="text" name="headline">
<br>
DittNamn:<br>
<input type="text" name="user">
<br>
Text:<br>
<textarea rows="15" name="text" cols="55"></textarea>
<br><br>
<input type="submit" value="Skicka">
</form>
<%
'Om variabeln Action innehåller värdet "do" körs denna kod under här
Elseif Action = "do" Then
'Vi kollar igenom om variabeln ID är tom
If IsNull(ID) Then
'Vi skriver 0 till variabeln Parent om variabeln ID är tom
Parent = 0
Else
'Vi skriver värdet från variabeln ID till variabeln Parent om ID innehåller något värde
Parent = ID
End if
'Vi skapar en SQL-sats
SQL = "INSERT INTO forum ([headline],[text],[parent],[date],[user]) "
SQL = SQL & "VALUES('" & Request.Form("headline") & "','" & Request.Form("text") & "',"
SQL = SQL & "" & Cint(Parent) & ",NOW(),'" & Request.Form("user") & "')"
'Vi utför SQL-satsen
Conn.Execute(SQL),,128
'Om Parent innehåller 0 skickar vi användaren till sidan viewforum.asp, om inte skickas användaren till viewtopic.asp
If Parent = 0 Then
Response.Redirect "viewforum.asp"
Else
Response.Redirect "viewtopic.asp?id=" & ID
End if
End If
%>
Detta är en början på ett mycket enkelt forum.
Koden är otestad så jag kan tyvärr inte garantera att inga felmeddelanden kommer dyka upp ;)
Edit: La upp kod till en "svara" sida också.
