Oprettelse af kategorier i debatforum
Jeg har kæmpet med dette længe, men har store besværligheder, så jeg håber MEGET på hjælp. Der kommer MEGET kode, sorry. Men det er næsten nødvendigt, og der er også afsat max point til spørgsmålet.Jeg har en tabel:
emneID: Primær nøgle, Autonummerering, NyeVærdier=Stigende, Indekseret=Ja - ingen dubletter
KategoriID: Tal, Langt heltal, Obligtorisk=Nej (skal være Ja, når det virker)
post_parent: Tal, Obligatorisk=Ja
nick: Tekst: Obligatorisk=Nej (bruger senere brugernavn fra login)
emne: Notat, Obligatorisk=Ja
brodtekst: Notat, Obligatorisk=Nej
kommentar: Notat, Obligatorisk=Nej
tid: tekst, Obligatorisk=Nej, Indekseret=Ja - dubletter tillades
hits: Kommer senere
url: Kommer senere
kategori: Tal=Obligatorisk=Nej (jeg er ikke sikker på, om den skal med, når jeg har kategoriID længere oppe).
5 ASP-DOKUMENTER
Nr. 1 (debatemne.asp):
<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn
' INDSÆT BESVARELSE
if request.form("mode") <> "" then
if Request.Form("mode") = "besvar" Then
' INDSÆT BESVARELSE
strSQL = _
"insert into debat (nick, kommentar, tid, post_parent) values(" & _
"'" & Replace(Request.Form("nick"),"'","''") & "'," & _
"'" & Replace(Request.Form("kommentar"),"'","''") & "'," & _
"'" & Now() & "'," & _
Request.Form("emneID") & ")"
else
' INDSÆT DEBATEMNE
strSQL = "insert into debat (nick, emne, brodtekst, kommentar, tid, kategoriID) values(" & _
"'" & Replace(Request.Form("nick"),"'","''") & "'," & _
"'" & Replace(Request.Form("emne"),"'","''") & "'," & _
"'" & Replace(Request.Form("brodtekst"),"'","''") & "'," & _
"'" & Replace(Request.Form("kommentar"),"'","''") & "'," & _
"'" & Now() & "'," & Request.Form("KategoriID")&")"
end if
Set RS = Conn.Execute(strSQL)
emneID=Request.Form("emneID")
if not emneID>0 then
SQL = "SELECT TOP 1 emneID FROM debat ORDER BY emneID DESC"
Set RS = Conn.Execute (SQL)
emneID=RS("emneID")
end if
response.redirect ("/members/debat/debatemne.asp?emneID=" & emneID & "")
end if
%>
<br>
<%
' HENT DEBATEMNE
SQL = "SELECT * FROM debat WHERE emneID = " & Request.QueryString("emneID")
Set RS = Conn.Execute (SQL)
If RS.EOF Then
Response.Write "Debatemnet blev ikke fundet!"
Response.End
End If
' VIS DEBATEMNE:
tidspunkt = addZ(day(RS("tid"))) & "-" & addZ(month(RS("tid"))) & "-" & year(RS("tid")) & " " & addZ(hour(RS("tid"))) & ":" & addZ(minute(RS("tid")))
Response.Write "<table border=""0"" cellspacing=""0"" cellpadding=""4"" width=""100%"">"
Response.Write "<tr><td><span class=""overskrift17"">" & FormatText(RS("emne")) & "</span></td></tr>"
Response.Write "<tr><td><span class=""tekst11""><b>" & "Debatemnet er oprettet af: " & "</b>" & FormatText(RS("nick")) & " den " & "<nobr>" & tidspunkt & "</nobr>" & "</span></td></tr>"
Response.Write "<tr><td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"" background=""/images_default/tdbg.gif""><tr><td><img border=""0"" src=""/images_default/1x1.gif"" width=""1"" height=""1""></td></tr></table></td></tr>"
Response.Write "<tr><td><span class=""tekst11""><b>" & FormatText(RS("brodtekst")) & "</b></span></td></tr>"
Response.Write "<tr><td><span class=""tekst11"">" & FormatText(RS("kommentar")) & "</span></td></tr>"
Response.Write "</table>"
text=""
Response.Write "<tr><td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"" background=""/images_default/tdbg.gif""><tr><td><img border=""0"" src=""/images_default/1x1.gif"" width=""1"" height=""1""></td></tr></table></td></tr>"
RS.Close
Set RS = nothing
%>
</td>
</tr>
<tr>
<td width="100%" valign="top">
<%
' HENT BESVARELSER:
SQL = "SELECT * FROM debat WHERE post_parent = " & Request.QueryString("emneID") & " ORDER BY emneID"
Set RS = Conn.Execute (SQL)
' VIS BESVARELSER:
While NOT RS.EOF
tidspunkt = addZ(day(RS("tid"))) & "-" & addZ(month(RS("tid"))) & "-" & year(RS("tid")) & " " & addZ(hour(RS("tid"))) & ":" & addZ(minute(RS("tid")))
Response.Write "<table border=""0"" cellpadding=""4"" cellspacing=""0"" width=""100%""><tr><td width=""20%""></td><td width=""80%""><span class=""tekst11""><b><br><br>" & "Besvaret af: " & "</b>" & RS("nick") & " den " & "<nobr>" & tidspunkt & "</nobr>" & "</b></span></td></tr>"
Response.Write "<tr><td width=""20%""></td><td width=""80%""><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"" background=""/images_default/tdbg.gif""><tr><td><img border=""0"" src=""/images_default/1x1.gif"" width=""1"" height=""1""></td></tr></table></td></tr>"
Response.Write "<tr><td width=""20%""></td><td width=""80%""><span class=""tekst11"">" & FormatText(Rs("kommentar")) & "</span></td></tr>"
Response.Write "<tr><td width=""20%""></td><td width=""80%""><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"" background=""/images_default/tdbg.gif""><tr><td><img border=""0"" src=""/images_default/1x1.gif"" width=""1"" height=""1""></td></tr></table></td></tr>"
Response.Write "</table>"
RS.MoveNext
text=""
Wend
RS.Close
Set RS = nothing
%>
Nr. 2 (frm_debatsvar.asp, er inkluderet i debatemne.asp):
<form method="POST" action="/members/debat/debatemne.asp">
<input type="hidden" name="mode" value="besvar">
<input type="hidden" name="emneID" value="<%=Request.QueryString("emneID")%>">
<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn
SQL = "SELECT * FROM debat"
Set RS = Conn.Execute( SQL )
Response.Write "<table cellspacing=""0"" cellpadding=""4"">"
Response.Write "<tr><td width=""20%""><span class=""tekst11"">" & "Din besvarelse af:" & "</td>"
Response.Write "<td width=""80%""><span class=""tekst11""><b>" & Conn.Execute("SELECT emne FROM debat WHERE emneID = " & Request.QueryString("emneID")).Fields("emne") & "</span></td></tr>"
Response.Write "<tr><td width=""20%""><span class=""tekst11"">" & "Dit navn:" & "</td><td width=""80%"">" & "<input type=""text"" name=""nick"" style=""background-color: #ffff99;"" size=""35"" class=""input""></td></tr>"
Response.Write "<tr><td width=""20%"" valign=""top""><span class=""tekst11"">" & "Besvarelse:" & "</td><td width=""80%"">" & "<textarea rows=""17"" name=""kommentar"" style=""background-color: #ffff99;"" cols=""90"" class=""input""></textarea></td></tr>"
Response.Write "<tr><td width=""20%""></td><td width=""80%""><input type=""submit"" value=""Besvar debatemne"" name=""besvar_debatemne"" class=""input"">" & " " & "<input type=""reset"" value=""Nulstil"" name=""nulstil"" class=""input""></td></tr>"
Response.Write "<tr><td width=""20%""></td><td width=""80%""><input type=""checkbox"" name=""C1"" value=""ON"" checked><span class=""tekst11"">" & "Jeg ønsker en mail tilsendt, når der er besvarelser!" & "</td></tr>"
Response.Write "</table>"
RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>
</form>
Nr. 3 (default.asp)
<tr>
<td valign="top" align="center">
<form method="POST" action="/members/debat/default.asp" style="display:inline;">
<p align="right" class="tekst11">Vælg kategori:
<select size="1" style="background-color: #ffff99;" name="alle_debat" class="input">
<option selected value="0">Alle områder</option>
<option value="1">Databaser</option>
<option value="2">Databaser: Generelt</option>
<option value="3">Databaser: Lotus Notes</option>
<option value="4">Databaser: MS Access</option>
<option value="5">Databaser: MS SQL</option>
<option value="6">Databaser: MySQL</option>
<option value="7">Databaser: SyBase</option>
<option value="8">Databaser: Oracle</option>
<option value="100">Om include.dk</option>
</select>
</p>
</form>
</td>
<td valign="top" align="center">
<form method="POST" action="/members/debat/default.asp">
<p class="tekst11">Antal visninger:
<select size="1" style="background-color: #ffff99;" name="antadebat" class="input">
<option selected>25 visninger</option>
<option value="50">50 visninger</option>
<option value="75">75 visninger</option>
<option value="100">100 visninger</option>
<option value="150">150 visninger</option>
<option>Alle</option>
</select> <input type="submit" value="Opdater" name="opdaterdebatemner" class="input">
</p>
</form>
</td>
</tr>
Nr. 4 (debatemneliste.asp, er inkluderet i default.asp):
<table border="0" width="100%" cellpadding="<% Response.Write(CellPadding)%>" cellspacing="0">
<tr>
<td>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn
'SQL = "SELECT TOP 25 * FROM debat WHERE post_parent = 0 ORDER BY emneID DESC"
SQL = "SELECT debat.emneID, debat.post_parent, debat.nick, debat.emne, debat.brodtekst, debat.kommentar, debat.tid, debat.hits, debat.url, Count(debat_1.emneID) AS CountOfemneID, Max(debat_1.tid) AS MaxOftid FROM debat AS debat_1 RIGHT JOIN debat ON debat_1.post_parent=debat.emneID GROUP BY debat.emneID, debat.post_parent, debat.nick, debat.emne, debat.brodtekst, debat.kommentar, debat.tid, debat.hits, debat.url HAVING (((debat.post_parent)=0)) ORDER BY debat.emneID DESC;"
Set RS = Conn.Execute( SQL )
response.write "<tr><td valign=""top"" width=""50%""><span class=""tekst11""><b>" & "Emne" & "</b></span></td>"
response.write "<td valign=""top"" width=""10%""><span class=""tekst11""><b><p align=""center"">" & "Bsv" & "</p></b></span></td>"
response.write "<td valign=""top"" width=""20%""><span class=""tekst11""><b><p align=""center"">" & "Oprettet" & "</p></b></span></td>"
response.write "<td valign=""top"" width=""20%""><span class=""tekst11""><b><p align=""center"">" & "Besvaret" & "</p></b></span></td></tr>"
while NOT RS.EOF
tidspunkt = addZ(day(RS("tid"))) & "-" & addZ(month(RS("tid"))) & "-" & year(RS("tid")) & " " & addZ(hour(RS("tid"))) & ":" & addZ(minute(RS("tid")))
response.write "<tr><td valign=""top"" width=""50%""><span class=""tekst11""><a href=""/members/debat/debatemne.asp?emneID=" & RS("emneID") & """>" & FormatText(RS("emne")) & "</a></span></td>"
response.write "<td valign=""top"" width=""10%""><span class=""tekst11""><p align=""center"">" & RS("CountOfemneID") & "</p></span></td>"
response.write "<td valign=""top"" width=""20%""><span class=""tekst11""><nobr>" & tidspunkt & "</nobr></span></td>"
response.write "<td valign=""top"" width=""20%""><span class=""tekst11""><nobr>" & rs("MaxOfTid") & "</nobr></span></td></tr>"
RS.MoveNext
text=""
wend
RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>
</td>
</tr>
</table>
Nr. 5 (frm_debat.asp, bruges til nyt indlæg):
<form method="POST" action="/members/debat/debatemne.asp">
<input type="hidden" name="mode" value="debatemne">
<table border="0" cellpadding="6" cellspacing="0" class="tekst11">
<tr>
<td colspan="2">
<span class="overskrift17">Opret nyt debatemne</span>
</td>
</tr>
<tr>
<td valign="top">Kategori:</td>
<td valign="top">
<p><select style="background-color: #ffff99;" size="1" name="kategoriID" class="input">
<option value=1>Vælg kategori</option>
<option value=2>Databaser</option>
<option value=3>Databaser generelt</option>
<option value=4>Databaser: DB2</option>
<option value=5>Databaser: FileMaker Pro</option>
<option value=6>Databaser: Interbase</option>
<option value=7>Databaser: Lotus Notes</option>
<option value=8>Databaser: MS Access</option>
<option value=9>Databaser: MS SQL</option>
<option value=10>Databaser: MySQL</option>
<option value=11>Databaser: Oracle</option>
<option value=12>Databaser: PostgreSQL</option>
<option value=13>Databaser: Sybase</option>
</select></p>
</td>
</tr>
<tr>
<td>Navn:</td>
<td><input type="text" name="nick" style="background-color: #ffff99;" size="35" class="input"></td>
</tr>
<tr>
<td>Emne:</td>
<td><input type="text" name="emne" style="background-color: #ffff99;" size="35" class="input"></td>
</tr>
<tr>
<td valign="top">Brødtekst:</td>
<td><textarea rows="3" name="brodtekst" style="background-color: #ffff99;" cols="50" class="input" onkeyup="tjek(this.value.length)" onkeydown="tjek(this.value.length)"></textarea></td>
</tr>
<tr>
<td valign="top">
</td>
<td>
<div style="posistion:relative" id="antal"> </div>
</td>
</tr>
<tr>
<td valign="top">Tekst:</td>
<td><textarea rows="17" name="kommentar" style="background-color: #ffff99;" cols="50" class="input"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Send debatemne" name="send_debatemne" class="input">
<input type="reset" value="Nulstil" name="nulstil" class="input">
</td>
</tr>
</table>
</form>
Jeg ved det er meget at kigge igennem, men jeg ved snart ikke mere, hvad der sker her; jeg er ved at miste overblikket, og kan ikke overskue at sætte det sammen, så der kan oprettes forskellige kategorier. Desuden vil jeg også have, at man skal kunne vælge mellem ALLE visninger, eller visninger med begrænsninger, f.eks. de 25 nyeste indlæg, 50, 75 ..... HÅBER det ikke er for meget :o(
