Avatar billede Slettet bruger
23. maj 2006 - 15:20 Der er 19 kommentarer og
1 løsning

Kode virker ikke

Hej.

Hvorfor virker denne her kode ikke?

<%
dim Kommentare
Kommentare =  Request.Querystring("id")

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

strSQL = "SELECT * From Kommentare WHERE Debat-ID = " & Kommentare & ""
Conn.Execute(strSQL)
%>
<%
Conn.Close
Set Conn = Nothing
%>

Nogle der kan hjælpe?
Avatar billede fennec Nybegynder
23. maj 2006 - 15:25 #1
Den kan næppe finde ud af Debat-ID. Smid den i []:

strSQL = "SELECT * From Kommentare WHERE [Debat-ID] = " & Kommentare
Avatar billede fennec Nybegynder
23. maj 2006 - 15:30 #2
For at hjælpe dig selv så følg denne lille regel:
Navne må kun indeholde a-z, 0-9 og _. Og skal desuden starte med a-z.

Det gælder alle typer navne (Database tabeller/kolonner, ASP variabeler, JavaScript variabler, HTML element navne/id, ASP filnavne osv.)

Så undgår du en masse problemer.
Avatar billede Slettet bruger
23. maj 2006 - 15:30 #3
Ok.. Det virker nu. Men prøv at se her. Det virker ikke

<%
dim Kommentare
Kommentare =  Request.Querystring("id")

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

strSQL = "SELECT * From Kommentare WHERE [Debat-ID] = " & Kommentare
Conn.Execute(strSQL)

strBesked = rs("Besked")
response.write strBesked
%>
Avatar billede fennec Nybegynder
23. maj 2006 - 15:33 #4
Mangler en "set rs":

strSQL = "SELECT * From Kommentare WHERE [Debat-ID] = " & Kommentare
set rs = Conn.Execute(strSQL)
Avatar billede Slettet bruger
23. maj 2006 - 15:42 #5
Den gider ikke virke. Den viser ikke det den skal vise...

Koden ser sådan her ud:

<%
dim Kommentare
Kommentare =  Request.Querystring("id")

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

strSQL = "SELECT * From Kommentare WHERE DebatID = " & Kommentare
set rs = Conn.Execute(strSQL)

strBesked = rs("Besked")
response.write strBesked
%>
<%
Conn.Close
Set Conn = Nothing
%>
Avatar billede fennec Nybegynder
23. maj 2006 - 15:53 #6
Hvad er det helt præsis du ønsker dette script skal gøre??
Avatar billede Slettet bruger
23. maj 2006 - 16:34 #7
Lige som et nyhedsscript hvor man kan lægge kommentare..
Avatar billede fennec Nybegynder
23. maj 2006 - 16:46 #8
Så dette script skal udskrive alle kommentar tilknytte en given debat??

set rs = Conn.Execute(strSQL)
while not rs.eof
  response.write rs("Besked")
  re.MoveNext
wend
Avatar billede Slettet bruger
23. maj 2006 - 17:06 #9
Ja..
Avatar billede Slettet bruger
23. maj 2006 - 17:09 #10
Den kode du har skrevet har jeg lige prøvet men den gider ikke..

<%
dim Kommentare
Kommentare =  Request.Querystring("id")

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

strSQL = "SELECT * From Kommentare WHERE DebatID = " & Kommentare & " "
set rs = Conn.Execute(strSQL)
while not rs.eof
  response.write rs("Besked")
  re.MoveNext
wend

Conn.Close
Set Conn = Nothing
%>
Avatar billede fennec Nybegynder
24. maj 2006 - 08:49 #11
Får du en fejl??
Avatar billede Slettet bruger
24. maj 2006 - 13:20 #12
Ja.

Jeg får den her fejl:

ADODB.Field error '80020009'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/debat_vis.asp, line 0
Avatar billede fennec Nybegynder
24. maj 2006 - 13:41 #13
Og din kode er 100% som vist her??
For det burde ikke være muligt at få den fejl, som du får, med den kode...
Avatar billede fennec Nybegynder
24. maj 2006 - 13:45 #14
Jo det gør...
Der er nemlig en skrive fejl:

re.MoveNext skal være rs.MoveNext

Det kan desuden KRAFTIG anbefales at starte alle dine sider med denne kode (skal være det aller første på siden):
<% @LANGUAGE = VBScript %><% Option Explicit %><%
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1

Så undgår du nemlig skrive fejl o.lign, da variabler skal dim'es.
Avatar billede Slettet bruger
24. maj 2006 - 14:08 #15
Hvorfor er det godt at have på sin side?
Avatar billede fennec Nybegynder
24. maj 2006 - 14:19 #16
@LANGUAGE = VBScript sikre at koden bliver fortolket som VB.

Option Explicit sikre at alle variabler skal dim's. Så undgår man skrivefejl, da den ville have fanget re/rs fejl vi havde lige før.

Response x3 sikre at siden ikke bliver cachet af serveren, hviket betyder at den ikke kører koden igen, men bare husker resultatet. Det kan betyde at de ændringer, du har lavet, ikke træder i kraft.
Avatar billede Slettet bruger
24. maj 2006 - 14:35 #17
Ok.

Nu er der noget andet der driller mig i scriptet. Det er dette her: Der hvor man skriver kommentaren.

<%
dim ID
ID = Request.Querystring("id")

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

strSQL = "Select * From Debat"
Set rs = Conn.Execute(strSQL)
%>
<form action='debat_vis.asp?id=" & rs("id") & "' method='post'>
<%
Conn.Close
Set Conn = Nothing
%>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/db/Debat.mdb")
Conn.Open DSN

strSQL = "Insert into Kommentare (Besked, DebatID) values('" & Request.Form("besked") & "', '" & Request.Form("DebatID") & "')"
Conn.Execute(strSQL)
%>
<input type="text" name="besked">
<input type="hidden" name="DebatID" value="<% Response.Write  Request.Querystring("id")  %>">
<input type="submit" value="Opret">
</form>

<%
Conn.Close
Set Conn = Nothing
%>


Jeg kan ikke få det til at virke. Kan du hjælpe?
if svar = "Ja" then
Hæver jeg pointe med 15 så du får 30
end if
Avatar billede fennec Nybegynder
24. maj 2006 - 14:48 #18
Den kode fatter jeg minus af :o)

Men jeg går ud fra at den er en side til at opette en kommentar til en debat. Det ville jeg lave sådan:

[opretKom.asp]
<%
dim ID, Conn, DSN, strSQL
ID = Request.Querystring("id")

if Request.querystring("mode") = "save" then
    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath("/db/Debat.mdb")
    Conn.Open DSN
   
    strSQL = "Insert into Kommentare (Besked, DebatID) values('"& replace(Request.Form("besked"),"'","''") &"', " & ID & ")"
    Conn.Execute(strSQL)
    Conn.Close
    Set Conn = Nothing
    response.redirect("enSide.asp")
end if
%>

<form action="opretKom.asp?mode=save&amp;id=<%= ID %>' method="post">
<textarea name="besked" cols="40" rows="4"></textarea>
<input type="submit" value="Opret">
</form>

Siden skal så kaldes med "opretKom.asp?id=123" hvor 123 svare til debat ID'et.
Avatar billede Slettet bruger
24. maj 2006 - 15:01 #19
Tak nu virker det fint:) Tak. Post et svar
Avatar billede fennec Nybegynder
24. maj 2006 - 15:24 #20
.o) <-- One Eyed Jack
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