Avatar billede steen_hansen Forsker
15. juli 2002 - 17:44 Der er 1 kommentar og
1 løsning

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:&nbsp;&nbsp;
                            <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:&nbsp;&nbsp;
                            <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>&nbsp;&nbsp;&nbsp; <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">&nbsp;</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(
Avatar billede steen_hansen Forsker
15. juli 2002 - 22:38 #1
Kort og godt:

1. Jeg skal kunne oprette kategorier

2. Brugere skal v.hj.a. en drop-down boks kunne se de seneste 25 indlæg, de seneste 50 indlæg, eller hvor mange de nu vælger. De skal kunne indlæggene fra hver kategori, eller de seneste fra alle kategorier.
Avatar billede steen_hansen Forsker
27. august 2002 - 10:28 #2
Lukker spørgsmål
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester