Avatar billede lars_hoeberg Praktikant
14. januar 2008 - 15:09 Der er 15 kommentarer

Simpel indsæt data i tabel - Hvad gør jeg forkert?

Hejsa. Jeg har en side med en formular, hvor der indtastes en masse deltaljer. Disse data skal så skrives ned til en db. Min db connection virker helt fint, men data bliver ikke skrevet. Hvad er der galt?
Avatar billede lars_hoeberg Praktikant
14. januar 2008 - 15:10 #1
Min primære side med formularen ser således ud:

<!--#include file="database_con.asp"-->
<html>
<head>
<title>Hvornår har du lyst og mulighed for at raide?</title>
</head>
<body>

<form method="post" action="udført.asp">

<p>Navn på Character:
<input type="text" name="NavnCharacter">

<p><b>Tidspunkt er som altid - Invite 19.30, Start 20.00 og stop 23.00</b> <br>
<input type="checkbox" name="Mandag" value="mandag"> Mandag <br>
<input type="checkbox" name="Tirsdag" value="tirsdag"> Tirsdag <br>
<input type="checkbox" name="Onsdag" value="onsdag"> Onsdag <br>
<input type="checkbox" name="Torsdag" value="torsdag"> Torsdag <br>
<input type="checkbox" name="Fredag" value="fredag"> Fredag <br>
<input type="checkbox" name="Lordag" value="lordag"> Lørdag <br>
<input type="checkbox" name="Sondag" value="sondag"> Søndag</p>

<b>Hvor har du lyst til at raide?</b>
<p>
Karazhan&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="checkbox" name="HvorKarazhanJa" value="HvorKarazhanJa"> Ja&nbsp;&nbsp;
|&nbsp;
<input type="checkbox" name="HvorKarazhanNej" value="HvorKarazhanNej"> Nej&nbsp;&nbsp;
|&nbsp;&nbsp;
<input type="checkbox" name="HvorKarazhanMangler" value="HvorKarazhanMangler"> Kun når der virkelig mangler</p>
<p>
Zul Aman&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="checkbox" name="HvorZulAmanJa" value="HvorZulAmanJa"> Ja&nbsp;&nbsp;
|&nbsp;
<input type="checkbox" name="HvorZulAmanNej" value="HvorZulAmanNej"> Nej&nbsp;&nbsp;
|&nbsp;&nbsp;
<input type="checkbox" name="HvorZulAmanMangler" value="HvorZulAmanMangler"> Kun når der virkelig mangler</p>
<p>
Gruul&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="checkbox" name="HvorGruulJa" value="HvorGruulJa"> Ja&nbsp;&nbsp;
|&nbsp;
<input type="checkbox" name="HvorGruulNej" value="HvorGruulNej"> Nej&nbsp;&nbsp;
|&nbsp;&nbsp;
<input type="checkbox" name="HvorGruulMangler" value="HvorGruulMangler"> Kun når der virkelig mangler</p>
<p>
Magtheridon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="checkbox" name="HvorMagtheridonJa" value="HvorMagtheridonJa"> Ja&nbsp;&nbsp;
|&nbsp;
<input type="checkbox" name="HvorMagtheridonNej" value="HvorMagtheridonNej"> Nej&nbsp;&nbsp;
|&nbsp;&nbsp;
<input type="checkbox" name="HvorMagtheridonMangler" value="HvorMagtheridonMangler"> Kun når der virkelig mangler</p>
<p>
Tempest Keep&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="checkbox" name="HvorTempestKeepJa" value="HvorTempestKeepJa"> Ja&nbsp;&nbsp;
|&nbsp;
<input type="checkbox" name="HvorTempestKeepNej" value="HvorTempestKeepNej"> Nej&nbsp;&nbsp;
|&nbsp;&nbsp;
<input type="checkbox" name="HvorTempestKeepMangler" value="HvorTempestKeepMangler"> Kun når der virkelig mangler</p>
<p>
Serpentshrine Cavern&nbsp;&nbsp;
<input type="checkbox" name="HvorSerpentshrineCavernJa" value="HvorSerpentshrineCavernJa"> Ja&nbsp;&nbsp;
|&nbsp;
<input type="checkbox" name="HvorSerpentshrineCavernNej" value="HvorSerpentshrineCavernNej"> Nej&nbsp;&nbsp;
|&nbsp;&nbsp;
<input type="checkbox" name="HvorSerpentshrineCavernMangler" value="HvorSerpentshrineCavernMangler"> Kun når der virkelig mangler</p>
<p>
<br>
<b>Hvem vil du gerne raide på?</b><br>
<input type="text" name="Hvem"></p>
<p>
<b>Hvad er dit raid spec? (ex. 5/16/40)<br>
<input type="text" name="RaidSpec"></p></b></p>
<p>
<b>Hvordan passer tidspunktet dig? (19.30 - 23.00)<br>
</b>Fint, ingen grund til at lave det om<b>&nbsp;
<input type="checkbox" name="TidspunktFint" value="TidspunktFint"><br>
</b>Dårligt. Jeg ville foretrække&nbsp;&nbsp;&nbsp;
<input type="text" name="TidspunktHellere"><br>
Havde ikke noget imod at udvide den til 19.00 - 23.30 (Invite 19.00 - Start
19.30)
<input type="checkbox" name="TidspunktUdvide" value="TidspunktUdvide"></p>
<p>
<b>Øvrige kommentarer<br>
<input type="memo" name="Kommentar" value="Kommentar" size="91"><br>
</b><br>
</p>
</p></p></p>
&nbsp;</p>

</p>

<p>

<input type="submit">

</p>

</form>

</body>
</html>
Avatar billede lars_hoeberg Praktikant
14. januar 2008 - 15:10 #2
Og svar siden ser således ud:

<!--#include file="database_con.asp"-->
<head>
<meta http-equiv="Content-Language" content="da">
</head>

<%
strSQL = "INSERT INTO tbldata (NavnCaracter) values('" & Request.Form("Navncharacter") & "')"
%>
Avatar billede lars_hoeberg Praktikant
14. januar 2008 - 15:11 #3
Dette er altså blot en test med det første felt
Avatar billede fennec Nybegynder
14. januar 2008 - 15:12 #4
Jeg ville starte med at omdøbe "udført.asp". æøå høre ikke hjemme i filnavne.

Dernæst. Får du en fejlmeddelse?
Avatar billede fennec Nybegynder
14. januar 2008 - 15:13 #5
Husker du at eksikvere din SQL?? Det fremgår ikke af dit kode eks:

<%
strSQL = "INSERT INTO tbldata (NavnCaracter) values('" & Request.Form("Navncharacter") & "')"
conn.execute(strSQL)
%>
Avatar billede lars_hoeberg Praktikant
14. januar 2008 - 15:41 #6
Den havde jeg så glemt. Begynderfejl :p

Men jeg har nu sat flere felter ind. Den ser nu sådan ud (Hvad er der galt, for der kommer fejl):

<!--#include file="database_con.asp"-->
<head>
<meta http-equiv="Content-Language" content="da">
</head>

<%
strSQL = "Insert into tbldata ("

strSQL = strSQL & "NavnCharacter, "
strSQL = strSQL & "Mandag, "
strSQL = strSQL & "Tirsdag, "
strSQL = strSQL & "Onsdag, "
strSQL = strSQL & "Torsdag, "
strSQL = strSQL & "Fredag, "
strSQL = strSQL & "Lordag, "
strSQL = strSQL & "Sondag, "
strSQL = strSQL & "HvornårKarazhanJa, "
strSQL = strSQL & "HvornårKarazhanNej, "
strSQL = strSQL & "HvornårKarazhanMangler, "
strSQL = strSQL & "HvornårZulAmanJa, "
strSQL = strSQL & "HvornårZulAmanNej, "
strSQL = strSQL & "HvornårZulAmanMangler, "
strSQL = strSQL & "HvornårGruulJa, "
strSQL = strSQL & "HvornårGruulNej, "
strSQL = strSQL & "HvornårGruulMangler, "
strSQL = strSQL & "HvornårMagtheridonJa, "
strSQL = strSQL & "HvornårMagtheridonNej, "
strSQL = strSQL & "HvornårMagtheridonMangler, "
strSQL = strSQL & "HvornårTempestKeepJa, "
strSQL = strSQL & "HvornårTempestKeepNej, "
strSQL = strSQL & "HvornårTempestKeepMangler, "
strSQL = strSQL & "HvornårSerpentshrineCavernJa, "
strSQL = strSQL & "HvornårSerpentshrineCavernNej, "
strSQL = strSQL & "HvornårSerpentshrineCavernMangler, "
strSQL = strSQL & "Hvem, "
strSQL = strSQL & "RaidSpec, "
strSQL = strSQL & "TidspunktFint, "
strSQL = strSQL & "TidspunktHellere, "
strSQL = strSQL & "TidspunktUdvide, "
strSQL = strSQL & "Kommentar) "

strSQL = strSQL & "values('" & "

strSQL = strSQL & "Request.Form("NavnCharacter"), "
strSQL = strSQL & "Request.Form("Mandag"), "
strSQL = strSQL & "Request.Form("Tirsdag"), "
strSQL = strSQL & "Request.Form("Onsdag"), "
strSQL = strSQL & "Request.Form("Torsdag"), "
strSQL = strSQL & "Request.Form("Fredag"), "
strSQL = strSQL & "Request.Form("Lordag"), "
strSQL = strSQL & "Request.Form("Sondag"), "
strSQL = strSQL & "Request.Form("HvornårKarazhanJa"), "
strSQL = strSQL & "Request.Form("HvornårKarazhanNej"), "
strSQL = strSQL & "Request.Form("HvornårKarazhanMangler"), "
strSQL = strSQL & "Request.Form("HvornårZulAmanJa"), "
strSQL = strSQL & "Request.Form("HvornårZulAmanNej"), "
strSQL = strSQL & "Request.Form("HvornårZulAmanMangler"), "
strSQL = strSQL & "Request.Form("HvornårGruulJa"), "
strSQL = strSQL & "Request.Form("HvornårGruulNej"), "
strSQL = strSQL & "Request.Form("HvornårGruulMangler"), "
strSQL = strSQL & "Request.Form("HvornårMagtheridonJa"), "
strSQL = strSQL & "Request.Form("HvornårMagtheridonNej"), "
strSQL = strSQL & "Request.Form("HvornårMagtheridonMangler"), "
strSQL = strSQL & "Request.Form("HvornårTempestKeepJa"), "
strSQL = strSQL & "Request.Form("HvornårTempestKeepNej"), "
strSQL = strSQL & "Request.Form("HvornårTempestKeepMangler"), "
strSQL = strSQL & "Request.Form("HvornårSerpentshrineCavernJa"), "
strSQL = strSQL & "Request.Form("HvornårSerpentshrineCavernNej"), "
strSQL = strSQL & "Request.Form("HvornårSerpentshrineCavernMangler"), "
strSQL = strSQL & "Request.Form("Hvem"), "
strSQL = strSQL & "Request.Form("RaidSpec"), "
strSQL = strSQL & "Request.Form("TidspunktFint"), "
strSQL = strSQL & "Request.Form("TidspunktHellere"), "
strSQL = strSQL & "Request.Form("TidspunktUdvide"), "
strSQL = strSQL & "Request.Form("Kommentar") & "')"

Conn.Execute(strSQL)
%>
Avatar billede fennec Nybegynder
14. januar 2008 - 15:49 #7
Du skal have dine Request.Form til at passe til dit DB felters datatype. Jeg går ikke ud fra at du vil indsætte "HvorKarazhanMangler" som værdi i databasen.

Desuden har du fået skrevet dine " forkert på alle RF(), men det tager vi når du har svaret på forgående ? :o)
Avatar billede fennec Nybegynder
14. januar 2008 - 15:49 #8
Det er vel et true/false, NULL/1 eller 0/1 felter du har i databasen.
Avatar billede lars_hoeberg Praktikant
14. januar 2008 - 15:51 #9
Alle er ja/nej felter med undtagelse af NavnCharacter, Hvem, RaidSpec, TidspunktHellere, Kommentar - Disse er tekst
Avatar billede fennec Nybegynder
14. januar 2008 - 16:10 #10
Så bliver du nød til at lave en mellem "beregning" på alle de felter. Din kode bliver så:

if Request.Form("HvornårKarazhanJa") <> "" then tmp = 1 else tmp = 0
strSQL = strSQL & tmp &", "
if Request.Form("HvornårKarazhanNej") <> "" then tmp = 1 else tmp = 0
strSQL = strSQL & tmp &", "
if Request.Form("HvornårKarazhanMangler") <> "" then tmp = 1 else tmp = 0
strSQL = strSQL & tmp &", "
...osv...

Dette gør du bare på alle ja/nej felter. Databasen skulle godtage 1 som ja og 0 som nej, hvorfor jeg sætter tmp variablen til disse værdier.
Avatar billede fennec Nybegynder
14. januar 2008 - 16:13 #11
Checkbox felter er så smarte, at de kun sender deres værdi, hvis de er afkrydset. Det er derfor ligemeget hvad værdien er checkboxen (bare der er en). Vi tjekker bare for om der står noget eller ej. Du kan derfor også ændre din form kode:

<input type="checkbox" name="HvorZulAmanJa" value="HvorZulAmanJa">
Kan lige så godt være:
<input type="checkbox" name="HvorZulAmanJa" value="ON">
Avatar billede lars_hoeberg Praktikant
14. januar 2008 - 16:17 #12
Okay, blev lidt forvirret nu. Kan jeg får dig til at indsætte disse ting i min kode, så det er rigtigt?
Avatar billede fennec Nybegynder
14. januar 2008 - 16:36 #13
Det er ret simpelt. Da databasen ikke godtager tekst værdier fra dine checkboxe men kun 0 og 1, laver vi et simpelt tjek. Her bruger jeg "HvornårKarazhanJa" checkboxen som eks:

if Request.Form("HvornårKarazhanJa") <> "" then

Da checkboxen kun returnere en værdi hvis den er afkrydset kan vi nøjes med at tjekke om der står noget eller ej hvorfor <> "" bruges. Vi bruger så en tmp variabel til at angive 0 og 1. Hvis der er en værdi i checkboxen sættes den til 1 eller 0:

if Request.Form("HvornårKarazhanJa") <> "" then tmp = 1 else tmp = 0

Nu har vi værdien vi vil indsætte i databasen og udvider derfor sql sætningen:
strSQL = strSQL & tmp &", "

Dette pricip fortsætte vi ned igennem alle checkbox elementer:
if Request.Form("HvornårKarazhanJa") <> "" then tmp = 1 else tmp = 0
strSQL = strSQL & tmp &", "

if Request.Form("HvornårKarazhanNej") <> "" then tmp = 1 else tmp = 0
strSQL = strSQL & tmp &", "

if Request.Form("HvornårKarazhanMangler") <> "" then tmp = 1 else tmp = 0
strSQL = strSQL & tmp &", "
...osv...

Det skulle du kunne skrive resten af selv. Jeg har nemlig ikke overblik over hvad der er checkboxe eller ej :o)
Avatar billede lars_hoeberg Praktikant
14. januar 2008 - 16:40 #14
Okay. Jeg må prøve. Du sagde at jeg havde forkerte tegn inde også? Jeg får lavet en ny kode og sætter ind, så alle checkboxe er inde. Men kommer først senere i dag eller i morgen. Vi finder lige ud af at du også kan få nogle flere points :-)
Avatar billede fennec Nybegynder
14. januar 2008 - 16:56 #15
De forkerte tegn har jeg rettet i den kode du har fået til alle checkbox indsættelserne, men du har egentlig stadig fejlen på de andre. Det var denne kode du har fejlen i:
strSQL = strSQL & "Request.Form("Tirsdag"), "

Der indsætter den ikke værdien fra Request.Form("Tirsdag") men "Request.Form("Tirsdag")". Det skulle i stedet have været:

strSQL = strSQL & "'" & Request.Form("Tirsdag") &"', "
eller:
strSQL = strSQL & "" & Request.Form("Tirsdag") &", "

Alt afhængig af om værdien skal ind i en tekst eller tal kolonne. Så det skal du også have rettet på alle indsættelserne.
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