06. marts 2003 - 09:57
Der er
31 kommentarer og 2 løsninger
Film side og online redigering!!
Jeg er ved at lave en biograf side hvor det skal være muligt for chef operatøren at redigere vagtplan online. Jeg bruger 3 tabeller i databasen og der er ikke noget problem i at hente dataen. Jeg får dog et problem når jeg skal opdatere informationerne. Rediger siden starter sådan her: <% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath ("_database12/brugere.mdb") Conn.Open DSN Dim samletAntal strSQL = "SELECT * FROM uge ORDER BY id" Set rs = Conn.Execute(strSQL) strSQL = "SELECT * FROM film ORDER BY id" Set rs2 = Conn.Execute(strSQL) strSQL = "SELECT * FROM operatoer ORDER BY id" Set rs3 = Conn.Execute(strSQL) %> Og opdater siden ser ud som følger: <% fejl = false id = Request.Form("id") uge1 = Request.Form("uge1") uge2 = Request.Form("uge2") uge3 = Request.Form("uge3") uge4 = Request.Form("uge4") uge5 = Request.Form("uge5") dato1 = Request.Form("dato1") dato2 = Request.Form("dato2") dato3 = Request.Form("dato3") dato4 = Request.Form("dato4") dato5 = Request.Form("dato5") 6a = Request.Form("6a") 6b = Request.Form("6b") 6c = Request.Form("6c") 6d = Request.Form("6d") 6e = Request.Form("6e") 7a = Request.Form("7a") 7b = Request.Form("7b") 7c = Request.Form("7c") 7d = Request.Form("7d") 7e = Request.Form("7e") 8a = Request.Form("8a") 8b = Request.Form("8b") 8c = Request.Form("8c") 8d = Request.Form("8d") 8e = Request.Form("8e") if fejl = false then beskrivelse = Replace(beskrivelse, "'", "''") Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath ("_database12/brugere.mdb") Conn.Open DSN strSQL = ("UPDATE uge SET uge1='" & uge1 & "', uge2='" & uge2 & "', uge3='" & uge3 & "', uge4='" & uge4 & "', uge5='" & uge5 & "', dato1='" & dato1 & "', dato2='" & dato2 & "', dato3='" & dato3 & "', dato4='" & dato4 & "', dato5='" & dato5 & "' WHERE id=" & id) strSQL = ("UPDATE film SET 6a='" & 6a & "', 6b='" & 6b & "', 6c='" & 6c & "', 6d='" & 6d & "', 6e='" & 6e & "', 7a='" & 7a & "', 7b='" & 7b & "', 7c='" & 7c & "', 7d='" & 7d & "', 7e='" & 7e & "', 8a='" & 8a & "', 8b='" & 8b & "', 8c='" & 8c & "', 8d='" & 8d & "', 8e='" & 8e & "' WHERE id2=" & id) Conn.Execute(strSQL) Conn.Close Set Conn = Nothing response.redirect "vagtplan.asp" end if %> Jeg håber i kan fortælle mig hvad jeg laver galt da jeg stadig er i lære processen:-)
Annonceindlæg fra Cognizant
AI er ikke problemet. Eksekvering er.
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
06. marts 2003 - 10:01
#1
Du executer i hvert fald ikke din først sql streng.. Men om det er det der er dit problem, ved jeg ikke!? strSQL = ("UPDATE uge SET uge1='" & uge1 & "', uge2='" & uge2 & "', uge3='" & uge3 & "', uge4='" & uge4 & "', uge5='" & uge5 & "', dato1='" & dato1 & "', dato2='" & dato2 & "', dato3='" & dato3 & "', dato4='" & dato4 & "', dato5='" & dato5 & "' WHERE id=" & id) Conn.Execute(strSQL) strSQL = ("UPDATE film SET 6a='" & 6a & "', 6b='" & 6b & "', 6c='" & 6c & "', 6d='" & 6d & "', 6e='" & 6e & "', 7a='" & 7a & "', 7b='" & 7b & "', 7c='" & 7c & "', 7d='" & 7d & "', 7e='" & 7e & "', 8a='" & 8a & "', 8b='" & 8b & "', 8c='" & 8c & "', 8d='" & 8d & "', 8e='" & 8e & "' WHERE id2=" & id) Conn.Execute(strSQL)
06. marts 2003 - 10:08
#2
Det ser ikke ud til at det er fejlen.. Jeg får føljene når jeg trykker opdater: Microsoft VBScript compilation error '800a0400' Expected statement /test/opdater_vagtplan.asp, line 14 6a = Request.Form("6a") ^
06. marts 2003 - 10:14
#3
du må ikke starte et variabel navn med et nummer..
06. marts 2003 - 10:16
#4
det vil sige at jeg skal ændre punkterne til at være f.eks: a1 a2 a3 ..... I stedet for: 6a 6b ...
06. marts 2003 - 10:33
#5
Ok får nu følgende fejl: Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC Microsoft Access Driver] Syntax error (comma) in query expression 'id=1, 1'. /test/opdater_vagtplan.asp, line 41
06. marts 2003 - 10:36
#6
det tyder på at der står "1, 1" i din id - passer det?
06. marts 2003 - 10:37
#7
ja
06. marts 2003 - 10:38
#8
Du mener under min id i databasen..?? Der står der 1 og i den første felt står der også 1..
06. marts 2003 - 10:38
#9
så er det jo et streng felt.. ret dine where til: "... WHERE id2='" & id &"'")
06. marts 2003 - 10:42
#10
Ok jeg har ændret lidt på det så der nu står: strSQL = ("UPDATE uge SET uge1='" & uge1 & "', uge2='" & uge2 & "', uge3='" & uge3 & "', uge4='" & uge4 & "', uge5='" & uge5 & "', dato1='" & dato1 & "', dato2='" & dato2 & "', dato3='" & dato3 & "', dato4='" & dato4 & "', dato5='" & dato5 & "' WHERE id2='" & id &"'") Conn.Execute(strSQL) strSQL = ("UPDATE film SET a1='" & a1 & "', a2='" & a2 & "', a3='" & a3 & "', a4='" & a4 & "', a5='" & a5 & "', b1='" & b1 & "', b2='" & b2 & "', b3='" & b3 & "', b4='" & b4 & "', b5='" & b5 & "', c1='" & c1 & "', c2='" & c2 & "', c3='" & c3 & "', c4='" & c4 & "', c5='" & c5 & "' WHERE id2='" & id &"'") Conn.Execute(strSQL) Men nu får jeg følgende fejl: Microsoft OLE DB Provider for ODBC Drivers error '80040e10' [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. /test/opdater_vagtplan.asp, line 41
06. marts 2003 - 10:44
#11
hvad står der i linie 41?
06. marts 2003 - 10:44
#12
Conn.Execute(strSQL)
06. marts 2003 - 10:46
#13
:) Prøv lige at sende hele dit script igen..
06. marts 2003 - 10:48
#14
Okay Here it goes;) Rediger siden: <% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath ("_database12/brugere.mdb") Conn.Open DSN Dim samletAntal strSQL = "SELECT * FROM uge ORDER BY id" Set rs = Conn.Execute(strSQL) strSQL = "SELECT * FROM film ORDER BY id" Set rs2 = Conn.Execute(strSQL) strSQL = "SELECT * FROM operatoer ORDER BY id" Set rs3 = Conn.Execute(strSQL) %> <form method="post" action="opdater_vagtplan.asp"> <table width="100%" height="473"> <tr> <td style="border-bottom: 1px solid #8A8F95; border-right: 1px solid #8A8F95" colspan="11" background="billeder/tablel_bg_billed.gif" class="theading" height="22"> <img src="billeder/arrow.gif" width="6" height="11"> Rediger Operatørplan</td> </tr> <tr> <input type="hidden" name="id" size="30" value="<%=rs("id")%>"> <input type="hidden" name="id" size="30" value="<%=rs2("id")%>"> Opdater siden: <% fejl = false id = Request.Form("id") uge1 = Request.Form("uge1") uge2 = Request.Form("uge2") uge3 = Request.Form("uge3") uge4 = Request.Form("uge4") uge5 = Request.Form("uge5") dato1 = Request.Form("dato1") dato2 = Request.Form("dato2") dato3 = Request.Form("dato3") dato4 = Request.Form("dato4") dato5 = Request.Form("dato5") a1 = Request.Form("a1") a2 = Request.Form("a2") a3 = Request.Form("a3") a4 = Request.Form("a4") a5 = Request.Form("a5") b1 = Request.Form("b1") b2 = Request.Form("b2") b3 = Request.Form("b3") b4 = Request.Form("b4") b5 = Request.Form("b5") c1 = Request.Form("c1") c2 = Request.Form("c2") c3 = Request.Form("c3") c4 = Request.Form("c4") c5 = Request.Form("c5") if fejl = false then beskrivelse = Replace(beskrivelse, "'", "''") Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath ("_database12/brugere.mdb") Conn.Open DSN strSQL = ("UPDATE uge SET uge1='" & uge1 & "', uge2='" & uge2 & "', uge3='" & uge3 & "', uge4='" & uge4 & "', uge5='" & uge5 & "', dato1='" & dato1 & "', dato2='" & dato2 & "', dato3='" & dato3 & "', dato4='" & dato4 & "', dato5='" & dato5 & "' WHERE id2='" & id &"'") Conn.Execute(strSQL) strSQL = ("UPDATE film SET a1='" & a1 & "', a2='" & a2 & "', a3='" & a3 & "', a4='" & a4 & "', a5='" & a5 & "', b1='" & b1 & "', b2='" & b2 & "', b3='" & b3 & "', b4='" & b4 & "', b5='" & b5 & "', c1='" & c1 & "', c2='" & c2 & "', c3='" & c3 & "', c4='" & c4 & "', c5='" & c5 & "' WHERE id2='" & id &"'") Conn.Execute(strSQL) Conn.Close Set Conn = Nothing response.redirect "vagtplan.asp" end if %>
06. marts 2003 - 10:51
#15
Smutter lige ind og får en smøg.. Vender tilbage om 5min... Hulens trang..:-)
06. marts 2003 - 10:53
#16
Du åbner connection 2 gange. Jeg har kommenteret den ekstra ud: <% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath ("_database12/brugere.mdb") Conn.Open DSN Dim samletAntal strSQL = "SELECT * FROM uge ORDER BY id" Set rs = Conn.Execute(strSQL) strSQL = "SELECT * FROM film ORDER BY id" Set rs2 = Conn.Execute(strSQL) strSQL = "SELECT * FROM operatoer ORDER BY id" Set rs3 = Conn.Execute(strSQL) %> <form method="post" action="opdater_vagtplan.asp"> <table width="100%" height="473"> <tr> <td style="border-bottom: 1px solid #8A8F95; border-right: 1px solid #8A8F95" colspan="11" background="billeder/tablel_bg_billed.gif" class="theading" height="22"> <img src="billeder/arrow.gif" width="6" height="11"> Rediger Operatørplan</td> </tr> <tr> <input type="hidden" name="id" size="30" value="<%=rs("id")%>"> <input type="hidden" name="id" size="30" value="<%=rs2("id")%>"> Opdater siden: <% fejl = false id = Request.Form("id") uge1 = Request.Form("uge1") uge2 = Request.Form("uge2") uge3 = Request.Form("uge3") uge4 = Request.Form("uge4") uge5 = Request.Form("uge5") dato1 = Request.Form("dato1") dato2 = Request.Form("dato2") dato3 = Request.Form("dato3") dato4 = Request.Form("dato4") dato5 = Request.Form("dato5") a1 = Request.Form("a1") a2 = Request.Form("a2") a3 = Request.Form("a3") a4 = Request.Form("a4") a5 = Request.Form("a5") b1 = Request.Form("b1") b2 = Request.Form("b2") b3 = Request.Form("b3") b4 = Request.Form("b4") b5 = Request.Form("b5") c1 = Request.Form("c1") c2 = Request.Form("c2") c3 = Request.Form("c3") c4 = Request.Form("c4") c5 = Request.Form("c5") if fejl = false then beskrivelse = Replace(beskrivelse, "'", "''") 'Set Conn = Server.CreateObject("ADODB.Connection") 'DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " 'DSN = DSN & "DBQ=" & Server.MapPath ("_database12/brugere.mdb") 'Conn.Open DSN strSQL = ("UPDATE uge SET uge1='" & uge1 & "', uge2='" & uge2 & "', uge3='" & uge3 & "', uge4='" & uge4 & "', uge5='" & uge5 & "', dato1='" & dato1 & "', dato2='" & dato2 & "', dato3='" & dato3 & "', dato4='" & dato4 & "', dato5='" & dato5 & "' WHERE id2='" & id &"'") Conn.Execute(strSQL) strSQL = ("UPDATE film SET a1='" & a1 & "', a2='" & a2 & "', a3='" & a3 & "', a4='" & a4 & "', a5='" & a5 & "', b1='" & b1 & "', b2='" & b2 & "', b3='" & b3 & "', b4='" & b4 & "', b5='" & b5 & "', c1='" & c1 & "', c2='" & c2 & "', c3='" & c3 & "', c4='" & c4 & "', c5='" & c5 & "' WHERE id2='" & id &"'") Conn.Execute(strSQL) Conn.Close Set Conn = Nothing response.redirect "vagtplan.asp" end if %>
06. marts 2003 - 11:00
#17
Det er 2 sider, så jeg skal bruge forbindelsen på opdater siden..
06. marts 2003 - 11:01
#18
hmm.. kan ikke umidbart sige dig hvad den fejl er..
06. marts 2003 - 11:03
#19
Heller ikke her.. Jeg lavede 3 tabeller i databasen for overskueligheds skyld, jeg skal måske gå tilbage til én tabel for at gøre det nemmere..
06. marts 2003 - 11:07
#20
lav en response.write strSQL response.end lige inden linie 41 der laver fejl og så post sql'en her
06. marts 2003 - 11:11
#21
UPDATE uge SET uge1='234', uge2='2', uge3='3', uge4='4', uge5='5', dato1='1', dato2='1', dato3='1', dato4='1', dato5='1' WHERE id2='1, 1'
06. marts 2003 - 11:13
#22
den er gal her WHERE id2='1, 1' det ser ud som om du har 2 idfelter i din form, hvis man har 2 eller flere form felter der hedder det samme kommer værdierne til at stå således : værdi1, værdi2, værdi3
06. marts 2003 - 11:17
#23
Jeg har skrevet koden med tre linier hvor de alle henter fra id feltet i tabellerne i databasen: strSQL = "SELECT * FROM uge ORDER BY id" Set rs = Conn.Execute(strSQL) strSQL = "SELECT * FROM film ORDER BY id" Set rs2 = Conn.Execute(strSQL) strSQL = "SELECT * FROM operatoer ORDER BY id" Set rs3 = Conn.Execute(strSQL) Og så ville jeg jo gerne hvis man kunne gemme informationerne i hver deres tabel. Men hvis jeg ikke kan det, hvad gør jeg så???
06. marts 2003 - 11:20
#24
Siden er her
http://www.flemminghave.dk/test/ og i kan logge ind med informationerne på login siden, så dukker der en menu op hvor i kan vælge de forskellige ting..
06. marts 2003 - 11:21
#25
det kan du også sagtens, men det er her det går galt id = Request.Form("id") id bliver sat til '1, 1' fordi der er 2 felter i din form der hedder id, du bliver nødt til at kalde dem noget forskelligt, f.eks ugeid og filmid og så hente dem med ugeid=request.form("ugeid"), ellers kan asp ikke hitte ud af hvilken af de 2 id'er den skal bruge
06. marts 2003 - 11:22
#26
Ok.. Jeg prøver lige..
06. marts 2003 - 11:23
#27
du har 2 hidden fields der hedder id slet det ene af dem
06. marts 2003 - 11:24
#28
på rediger_vagtplan siden
06. marts 2003 - 11:32
#29
Jeg skal vel definere id'en til opdater siden..?? Må jeg lige se på senere..:) Rediger siden ser ud som følger: strSQL = "SELECT * FROM uge ORDER BY ugeid" Set rs = Conn.Execute(strSQL) strSQL = "SELECT * FROM film ORDER BY filmid" Set rs2 = Conn.Execute(strSQL) strSQL = "SELECT * FROM operatoer ORDER BY operatoerid" Set rs3 = Conn.Execute(strSQL) %> <form method="post" action="opdater_vagtplan.asp"> <table width="100%" height="473"> <tr> <td style="border-bottom: 1px solid #8A8F95; border-right: 1px solid #8A8F95" colspan="11" background="billeder/tablel_bg_billed.gif" class="theading" height="22"> <img src="billeder/arrow.gif" width="6" height="11"> Rediger Operatørplan</td> </tr> <tr> <input type="hidden" name="ugeid" size="30" value="<%=rs("ugeid")%>"> <input type="hidden" name="filmid" size="30" value="<%=rs2("filmid")%>"> Og opdater siden: <% fejl = false ugeid = Request.Form("ugeid") uge1 = Request.Form("uge1") uge2 = Request.Form("uge2") uge3 = Request.Form("uge3") uge4 = Request.Form("uge4") uge5 = Request.Form("uge5") dato1 = Request.Form("dato1") dato2 = Request.Form("dato2") dato3 = Request.Form("dato3") dato4 = Request.Form("dato4") dato5 = Request.Form("dato5") filmid = Request.Form("filmid") a1 = Request.Form("a1") a2 = Request.Form("a2") a3 = Request.Form("a3") a4 = Request.Form("a4") a5 = Request.Form("a5") b1 = Request.Form("b1") b2 = Request.Form("b2") b3 = Request.Form("b3") b4 = Request.Form("b4") b5 = Request.Form("b5") c1 = Request.Form("c1") c2 = Request.Form("c2") c3 = Request.Form("c3") c4 = Request.Form("c4") c5 = Request.Form("c5") if fejl = false then beskrivelse = Replace(beskrivelse, "'", "''") Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath ("_database12/brugere.mdb") Conn.Open DSN strSQL = ("UPDATE uge SET uge1='" & uge1 & "', uge2='" & uge2 & "', uge3='" & uge3 & "', uge4='" & uge4 & "', uge5='" & uge5 & "', dato1='" & dato1 & "', dato2='" & dato2 & "', dato3='" & dato3 & "', dato4='" & dato4 & "', dato5='" & dato5 & "' WHERE ugeid2='" & ugeid &"'") Conn.Execute(strSQL) strSQL = ("UPDATE film SET a1='" & a1 & "', a2='" & a2 & "', a3='" & a3 & "', a4='" & a4 & "', a5='" & a5 & "', b1='" & b1 & "', b2='" & b2 & "', b3='" & b3 & "', b4='" & b4 & "', b5='" & b5 & "', c1='" & c1 & "', c2='" & c2 & "', c3='" & c3 & "', c4='" & c4 & "', c5='" & c5 & "' WHERE filmid2='" & filmid &"'") Conn.Execute(strSQL) Conn.Close Set Conn = Nothing response.redirect "vagtplan.asp" end if %> Men jeg får fejl..
06. marts 2003 - 11:39
#30
Jeg satte lige response foran fejlen og fik det her: UPDATE uge SET uge1='dfh', uge2='2', uge3='3', uge4='4', uge5='5', dato1='1', dato2='1', dato3='1', dato4='1', dato5='1' WHERE id=''
06. marts 2003 - 11:39
#31
den viser ikke id'en..
06. marts 2003 - 11:52
#32
Skidt være med det...:) Jeg smed det hele i én tabel så nu virker det. Jeg tror jeg øver mig lidt mere inden jeg prøver med 3 tabeller til én form.. -mundi- smid lige et svar så får du også lige nogle point.. Tusind tak for hjælpen -mundi- og mortvader
06. marts 2003 - 11:52
#33
et svar
Kurser inden for grundlæggende programmering