Avatar billede cotus Nybegynder
22. maj 2002 - 17:31 Der er 15 kommentarer og
1 løsning

Problem med begyndelse på et forum

Jeg har altså NOGET af et problem - jeg er ved at lave (mit første) forum til min side, men når jeg afprøver det, står den og loader, og loader, og loader, og da der var gået 12 minutter, så gad jeg ikke mere, og indså, at der måtte være en fejl i ASP-koden - men når der ingen fejlmeddelelse er, hvordan skal jeg (en begynder programmer), så finde den?

Håber virkelig at nogen kan hjælpe!

<% If Request.Querystring("mode") = "add" Then %>
    <form method="post" action="default.asp?mode=save">
    <table>
    <tr>
    <td>Overskrift</td>
    <td><input type="text" name="overskrift"></td>
    </tr>
    <tr>
    <td>Besked</td>
    <td><textarea rows="8" name="BESKRIVELSE" style="width: 340"></textarea></td>
    </tr>
    </table>
    </form>
<% Elseif Request.Querystring("mode") = "save" Then %>
    <%
    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath("../community.mdb")
    Conn.Open DSN
    strSQL = "Insert into board (IP, DATO, TID, NAVN, BESKED) values('" & Request.Servervariables("REMOTE_ADDR") & "','" & FormatDateTime(Now(),1) & "','" & FormatDateTime(Now(),2) & "','" & Session("mode") & "','" & Request.Form("BESKED") & "')"
    Conn.Execute(strSQL) %>
<% Elseif Request.Querystring("mode") = "all" Then %>
    <table>
    <%
    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath("../community.mdb")
    Conn.Open DSN
    strSQL = "Select * from board order by ID Desc"
    Set rs = Conn.Execute(strSQL)
    Do
    %>
        <tr>
        <td><a href="view.asp?id=<% Response.write rs("dato") %>"><% Response.write rs("overskrift") %></a></td>
        <td>Af <% Response.write rs("navn") %>, d. <% Response.write rs("dato") %> kl. <% Response.write rs("tid") %></td>
        </tr>
    <%
    Loop While Not rs.EOF
    %>
    </table>
<% Else Response.redirect "default.asp?mode=all" %>
<% End if %>
    <%
    Conn.Close
    Set Conn = Nothing
    %>
Avatar billede eagleeye Praktikant
22. maj 2002 - 17:39 #1
du mangler en rs.movenext i udskrivning loop'et:

  Do
    %>
        <tr>
        <td><a href="view.asp?id=<% Response.write rs("dato") %>"><% Response.write rs("overskrift") %></a></td>
        <td>Af <% Response.write rs("navn") %>, d. <% Response.write rs("dato") %> kl. <% Response.write rs("tid") %></td>
        </tr>
    <%
    rs.movenext
    Loop While Not rs.EOF
Avatar billede cotus Nybegynder
22. maj 2002 - 19:26 #2
Takker! :)

Men... hvis der ingen kommentarer er, så havde jeg tænkt mig, at gøre flg.:

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../community.mdb")
Conn.Open DSN
strSQL = ("SELECT * FROM comments WHERE ID=" & ID)
Set rs = Conn.Execute(strSQL)
    Do

If rs.EOF Then Response.write "Der er ingen kommentarer til denne tråd" End if %>

Kan jeg det?

/cotus
Avatar billede eagleeye Praktikant
22. maj 2002 - 19:29 #3
Ja det kan du men du skal flytte if'en ud foran loop'et:

  Set rs = Conn.Execute(strSQL)
  if rs.EOF OR rs.BOF then
    Response.write "Der er ingen kommentarer til denne tråd"
  else
    Do
    %>
        <tr>
        <td><a href="view.asp?id=<% Response.write rs("dato") %>"><% Response.write rs("overskrift") %></a></td>
        <td>Af <% Response.write rs("navn") %>, d. <% Response.write rs("dato") %> kl. <% Response.write rs("tid") %></td>
        </tr>
    <%
    rs.movenext
    Loop While Not rs.EOF
  end if
Avatar billede cotus Nybegynder
23. maj 2002 - 18:49 #4
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/privat/biggel/forum/view.asp, line 61

Linie 61:  Set rs = Conn.Execute(strSQL)
Avatar billede cotus Nybegynder
23. maj 2002 - 19:05 #5
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Donaldisten.dk </TITLE>
</HEAD>

<BODY>
<%
ID = Request.QueryString("id")

Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../community.mdb")

set rs = Conn.execute("SELECT * FROM board WHERE ID=" & ID)

overskrift = rs("overskrift")
navn = rs("navn")
besked = rs ("besked")
dato = rs ("dato")
tid = rs ("tid")
ip = rs ("ip")
%>

<% If rs.EOF Then Response.write "Fejl!" End if %>

        <table>
        <tr>
        <td><h3><%=overskrift%></h3></td>
        </tr>
        <tr>
        <td><i>Af <%=navn%>, d. <%=dato%>, klokken <%=tid%></i></td>
        </tr>
        <tr>
        <td><font color="white">Mellemrum</font></td>
        </tr>
        <tr>
        <td><%=besked%></td>
        </tr>
        <% If Session("mode") = "jacob" Then %>
        <tr>
        <td>Dette indlæg er lagt ind af <%=ip%></td>
        </tr>
        <hr>
        <% End if %>
        </table>
<%
rs.Close
set rs = nothing

Conn.Close
Set Conn = Nothing
%>

<table>
<%
id = Request.QueryString("id")

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../community.mdb")
Conn.Open DSN
strSQL = ("SELECT * FROM comments WHERE ID=" & ID)
  Set rs = Conn.Execute(strSQL)
  if rs.EOF OR rs.BOF then
    Response.write "Der er ingen kommentarer til denne tråd"
  else
    Do
    %>
        <tr>
        <td><a href="view.asp?id=<% Response.write rs("dato") %>"><% Response.write rs("overskrift") %></a></td>
        <td>Af <% Response.write rs("navn") %>, d. <% Response.write rs("dato") %> kl. <% Response.write rs("tid") %></td>
        </tr>
    <%
    rs.movenext
    Loop While Not rs.EOF
  end if
    Conn.Close
    Set Conn = Nothing
%>
</table>
</BODY>
</HTML>
<br><a href="add_new.asp">Opret indlæg</a> | <a href="default.asp?mode=all">Se alle indlæg</a>
Avatar billede eagleeye Praktikant
23. maj 2002 - 20:24 #6
Din SQL ser sådan ud:
strSQL = ("SELECT * FROM comments WHERE ID=" & ID)

du hendter ID i starten sådan her: id=request.querystring("id")
Det betyder ID skal være med i linket lige som mode=all så skal id med. eks: mode=all&id=3
Avatar billede cotus Nybegynder
23. maj 2002 - 20:36 #7
Avatar billede eagleeye Praktikant
23. maj 2002 - 20:40 #8
Skal det så være ID du bruger når du hendter comments i et forum/board?? Jeg ville tror du havde en kolonne som hed forumID eller boardID

strSQL = ("SELECT * FROM comments WHERE forumID=" & ID)
Avatar billede cotus Nybegynder
23. maj 2002 - 20:43 #9
Jeg har en kolonne i min database der hedder ID - når man opretter en kommentar, ser den hvor man kommer fra og indskriver dette i database! Så skal det jo være sådan, at den udskriver alle kommentarer fra comments, hvor ID er lig med det aktuelle indlæg!

/cotus
Avatar billede eagleeye Praktikant
23. maj 2002 - 20:45 #10
så prøv at udskrive SQL'en

strSQL = "SELECT * FROM comments WHERE ID=" & ID
response.write strSQL
Set rs = Conn.Execute(strSQL)
Avatar billede cotus Nybegynder
24. maj 2002 - 20:49 #11
Avatar billede eagleeye Praktikant
24. maj 2002 - 21:07 #12
har du brugernavn/password for test?
Eller hvad skriver den ud?
Avatar billede cotus Nybegynder
24. maj 2002 - 21:09 #13
Brugernavn: eksperten
Kodeord: eksperten

/cotus
Avatar billede eagleeye Praktikant
24. maj 2002 - 21:24 #14
Er ID i comments defineret som Tal ??
Avatar billede cotus Nybegynder
24. maj 2002 - 21:28 #15
Det er defineret som tekst...
Avatar billede eagleeye Praktikant
24. maj 2002 - 21:47 #16
Så skal der ' omkring:

strSQL = "SELECT * FROM comments WHERE ID= '" & ID & "'"
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