Avatar billede jeffe Nybegynder
29. april 2003 - 21:02 Der er 13 kommentarer og
2 løsninger

MySQL <> ASP

Jeg har kæmpet med et problem i nærmest flere dage nu. Please help:

Jeg har en tabel i min MySQL kaldet "nyheder". I den lægges der nyheder med "id", "overskrift" og "tekst". felterne er henholdsvis int, tinytext og mediumtext. Jeg har en tilføj nyhed-side der virker perfekt. Jeg vil også have en ret nyhed-side. Det skal foregå på den måde at jeg får en liste med alle overskrifter og når man klikker kommer man så til ret.asp med nyhedens id som querystring. Alt dette har jeg lavet og det virker. Ved hjælp af den querystring skal den valgte nyheds data så sættes i textfield (overskriften) og textarea (teksten). Alt dette har jeg også klaret. Disse to felter er i en form, og det er så meningen at man kan rette i teksten og derefter submitte dataene og opdatere db'en på den måde.
Dette gør jeg så via den allerede åbne forbindelse til databasen, som jeg før har gjort på akkurat samme måde. Men lige meget hvad jeg gør får jeg fejl når jeg submitter. Dataene hentes altså fint nok ind i felterne, men når der submittes får jeg denne fejl:
ADODB.Recordset.1 error '80004005'

SQLState: 42000
Native Error Code: 1064
[TCX][MyODBC]You have an error in your SQL syntax near '' at line 1
/ngif/test.asp, line 7

Line 7 er: rs.Open sql, conn, 1, 3
Derfor synes jeg det er lidt underligt at den først fejler når der submittes.

Nogen der kan hjælpe?
Avatar billede jeffe Nybegynder
29. april 2003 - 21:10 #1
<%
Response.Buffer = True
Set Conn = Server.CreateObject("ADODB.Connection")
conn.open "Driver=mysql;Server=localhost;Database=db;UID=fedeting_dk;PWD=pass;"
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "select * from nyheder WHERE id = " & Request.querystring("id")
rs.Open sql, conn, 1, 3

overskrift = rs("overskrift")
tekst = rs("tekst")

    if Request.ServerVariables("REQUEST_METHOD") = "POST" then

    overskrift = Request("overskrift")
    tekst = Request("tekst")

    rs("overskrift") = overskrift
    rs("tekst") = tekst
    rs.update

end if
%>
<body>
<table width="730" align="center" style="border:solid 1px black">
    <tr>

        <td width="570" valign="top">
<form method="post" action="test.asp" id="form1" name="form1">
<table width=80% align="center">
    <tr>
        <td width=40%><h4>Overskrift:</td>
        <td width=60%><input name="overskrift" value="<%=overskrift%>" type="text" maxlength="40" style="width:120"></td>
    </tr>
    <tr>
        <td width=40%><h4>Tekst:</td>
        <td width=60%><textarea name="tekst" style="background-color: #0000ff; color: #ffffff; font-family: Verdana; font-size: 9 pt; border: 1 solid #000000; width: 500" rows="5" cols="1000"><%=tekst%></textarea></td>
    </tr>
    <tr>
        <td width=40%></td>
        <td width=60%><input name="submit" type="submit" value="Ret" style="border: 1 solid #000000; width:120; font-weight: bold"></td>
    </tr>
</form>
Avatar billede jeffe Nybegynder
29. april 2003 - 21:11 #2
Det er sådan én her der gør det.... :/
Avatar billede keysersoze Ekspert
29. april 2003 - 21:12 #3
er du 100% sikker på at Request.querystring("id") IKKE er tom?
Avatar billede htm Nybegynder
29. april 2003 - 21:14 #4
Prøv og lav
sql = "select * from nyheder WHERE id = " & Request.querystring("id")
om til
sql = "select * from nyheder WHERE id = '" & Request.querystring("id") & "'"

Ellers må du have en tom id variabel eller lign.!
Avatar billede keysersoze Ekspert
29. april 2003 - 21:15 #5
prøv at ændre dit form-tag til dette;

<form method="post" action="test.asp?id=<%=request.querystring("id")%>" id="form1" name="form1">
Avatar billede jeffe Nybegynder
29. april 2003 - 21:16 #6
du kan selv prøve på www.fedeting.dk/ngif/test.asp
Altså med www.fedeting.dk/ngif/test.asp?id=1
Der er kun én nyhed for jeg har lige prøvet at lave en ny tabel

den test.asp er præcis den kode jeg pastede ovenfor...
Avatar billede jeffe Nybegynder
29. april 2003 - 21:20 #7
Nu gjorde jeg begge dele, og nu opdaterer den godt nok, men lige meget hvad så bare til "" i begge felter. Koden ser således ud nu:

<%
Response.Buffer = True
Set Conn = Server.CreateObject("ADODB.Connection")
conn.open "Driver=mysql;Server=localhost;Database=fedeting_dk;UID=fedeting_dk;PWD=W9p3jIwe;"
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "select * from ngif WHERE id = '" & Request.querystring("id") & "'"
rs.Open sql, conn, 1, 3

overskrift = rs("overskrift")
tekst = rs("tekst")

    if Request.ServerVariables("REQUEST_METHOD") = "POST" then

    overskrift = Request("email")
    tekst = Request("password")

    rs("overskrift") = overskrift
    rs("tekst") = tekst
    rs.update
end if
%>
<body>
<table width="730" align="center" style="border:solid 1px black">
    <tr>

        <td width="570" valign="top">
<form method="post" action="test.asp?id=<%=request.querystring("id")%>" id="form1" name="form1">
<table width=80% align="center">
    <tr>
        <td width=40%><h4>Overskrift:</td>
        <td width=60%><input name="overskrift" value="<%=overskrift%>" type="text" maxlength="40" style="width:120"></td>
    </tr>
    <tr>
        <td width=40%><h4>Tekst:</td>
        <td width=60%><textarea name="tekst" style="background-color: #0000ff; color: #ffffff; font-family: Verdana; font-size: 9 pt; border: 1 solid #000000; width: 500" rows="5" cols="1000"><%=tekst%></textarea></td>
    </tr>
    <tr>
        <td width=40%></td>
        <td width=60%><input name="submit" type="submit" value="Ret" style="border: 1 solid #000000; width:120; font-weight: bold"></td>
    </tr>
</form>
Avatar billede keysersoze Ekspert
29. april 2003 - 21:25 #8
http://www.fedeting.dk/ngif/test.asp <- her kommer fejlen fordi dit id i querystring'en er tom - og derfor VIL sql'en fejle....
Avatar billede jeffe Nybegynder
29. april 2003 - 21:28 #9
keysersoze: Ja, men siden bliver aldrig loadet uden id=x
Det er kun lige har vede test. Det virker jo heller ikke med www.fedeting.dk/ngif/test.asp?id=1 :/
Avatar billede keysersoze Ekspert
29. april 2003 - 21:44 #10
men - hvad er lige det ved www.fedeting.dk/ngif/test.asp?id=1 der ikke virker? siden kommer fint frem - og indskriver jeg noget og trykke på ret kommer der heller ingen fejl?
Avatar billede jeffe Nybegynder
29. april 2003 - 21:56 #11
keysersoze: Der sker jo ikke nogen opdatering af databasen, desværre..
Avatar billede jeffe Nybegynder
29. april 2003 - 21:57 #12
Eller jo, det gør der faktisk nu. Nu er problemet bare at dataene ikke kaldes frem fra db'en og ind i felterne fra start. Og at den opdaterer db'en, men felterne bliver bare tomme.
Avatar billede jeffe Nybegynder
29. april 2003 - 21:59 #13
Ahhh, sådan....nu fik jeg det til at funke...geez...
Hvem skal have point. Jeg mener, jeg ved ikke prøcist hvad der gjorde udslaget...
Avatar billede keysersoze Ekspert
29. april 2003 - 22:03 #14
det er såmen op til dig... lægger i hvert fald lige et svar
Avatar billede jeffe Nybegynder
29. april 2003 - 22:11 #15
Håber det var rimeligt nok.
Tak for hjælpen
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
Computerworld tilbyder specialiserede kurser i database-management

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