CatZMedlem sedan jan. 20022 341 inlägg Jag har precis skapat ett flersidors formulär som jag sedan ska sätta in i databasen i två olika tabeller med 2 olika SQL satser. Nu dök det givetvis upp lite problem. Det finns två varianter som jag kan se, den första insert:en fungerar fint. Det är nästa del som är lite vajsing med.'
Dim rs2, SQL2, KrID
Dim i, Antal
Set rs2 = dbCom.Execute("Select @@identity")
KrID = rs2(0)
Antal = request("Antal")
For i = 1 to Antal
SQL2 = "INSERT INTO krSpel (dagarID, tid, KrID)" & _
" VALUES(" & SQLEncode(Request.Form("dagarID")) & ", " & _
" '" & SQLEncode(Request.Form("tid")) & "', " & _
" " & SQLEncode(KrID) & ")"
'dbCom.Execute SQL2,,128
response.write SQL2
Next
Så ser den ut i nuvarande form, men jag undrar om man kan göra på det viset? dagarID och tid är ju i nuvarande form 2 arrayer som håller informationen från select="dagarID" och text="tid". Ska jag splitta upp den arrayen först och sedan göra insert?
Alternativ 2 vore ju om man döper om arrayerna med siffror efteråt redan i formuläret så att det inte blir en array utan får ett helt eget dagarID1 osv och sedan loopar SQL frågan och anger plus på någe sätt... problemet då, jag vet inte hur man gör det? :(
LarsGMedlem sedan dec. 200012 465 inlägg Jag skulle nog aldrig lagra flera värden i en kolumn, så jag tycker att du skall dela upp det i olika poster.
CatZMedlem sedan jan. 20022 341 inlägg Kan man "plussa" på i SQL satsen på samma sätt som i en loop när man skriver namnet ?
Dim rs2, SQL2, KrID
Dim i, Antal, oka
Dim dagarID, tid
Set rs2 = dbCom.Execute("Select @@identity")
KrID = rs2(0)
Antal = request("Antal")
oka = 1
For i = 1 to Antal
dagarID = Request.Form("dagarID") & oka
tid = Request.Form("tid") & oka
SQL2 = "INSERT INTO krSpel (dagarID, tid, KrID)" & _
" VALUES(" & SQLEncode(dagarID) & ", " & _
" '" & SQLEncode(tid) & "', " & _
" " & SQLEncode(KrID) & ")"
'dbCom.Execute SQL2,,128
response.write SQL2
oka = oka + 1
Next
Utskriften blir nu :
INSERT INTO krSpel (dagarID, tid, KrID)
VALUES(1, '1', 0)
INSERT INTO krSpel (dagarID, tid, KrID)
VALUES(2, '2', 0)
INSERT INTO krSpel (dagarID, tid, KrID)
VALUES(3, '3', 0)
Bara själva ÖKA delen med siffran kommer med :/
Jesper TMedlem sedan nov. 20017 058 inlägg
CatZ skrev:
löste problemet
Det är alltid bra att delge lösningarna, så kan fler få nytta av dem. :)
CatZMedlem sedan jan. 20022 341 inlägg
CatZ skrev:
En sann mästare lär aldrig ut alla sina hemligheter, då skulle han snart inte vara en sann mästare längre
Ska posta hela lösningen imorgon, orkar inte nu :P
CatZMedlem sedan jan. 20022 341 inlägg Ångrade mig Första delen här är ju då formuläret, Request("Antal") är från formulärfältet antal där de får ange hur många spelkvällar de vill ha med. Fungerar utmärkt för mina enkla ändamål. Ska finputsa lite och deklarera mera :)
<%
dim item, Antal, i, oka
for each item in Request.Form
response.write "<input type='hidden' name='" & item & "' value='" & Request(item) & "'>"
next
Antal = Request("Antal")
oka = 1
For i = 1 to Antal
%>
<tr class="td2">
<td>Spelkväll</td>
<td>
<select name="dagarID<%=oka%>">
<option value="">.: Välj Dag :.</option>
<option value="2">Måndag</option>
<option value="3">Tisdagar</option>
<option value="4">Onsdagar</option>
<option value="5">Torsdagar</option>
<option value="6">Fredagar</option>
<option value="7">Lördag</option>
<option value="1">Söndag</option>
</select>
Tid: <input name="tid<%=oka%>" type="text" size="7" maxlength="5">
</td>
</tr>
<% oka = oka + 1
Next
%>
detta avslutas ju då med en submit och inleds med <form>
Nästa del är egentligen samma sak jag markerar den intressanta delen met fet stil. Eftersom jag gör insert i 2 olika tabeller måste jag ju hämta id från första insert:en
If Request("KrPostnr") = "" Then
<% NyttPostnr = "NULL"
Else
NyttPostnr = Request("KrPostnr")
End If
If Request("KrMpnID") = "" Then
NyttMpnID = "NULL"
Else
NyttMpnID = Request("KrMpnID")
End If
SQL = "INSERT INTO krInfo (KrLan, KrNamn, KrGata, KrPostnr, KrStad, KrTele, KrLank, KrMpnID, KrEpost, KrSommar)" & _
" VALUES('" & SQLEncode(Request("KrLan")) & "', " & _
" '" & SQLEncode(Request("KrNamn")) & "', " & _
" '" & SQLEncode(Request("KrGata")) & "', " & _
" " & SQLEncode(NyttPostnr) & ", " & _
" '" & SQLEncode(Request.Form("KrStad")) & "', " & _
" '" & SQLEncode(Request.Form("KrTele")) & "', " & _
" '" & SQLEncode(Request.Form("KrLank")) & "', " & _
" " & SQLEncode(NyttMpnID) & ", " & _
" '" & SQLEncode(Request.Form("KrEpost")) & "', " & _
" '" & SQLEncode(Request.Form("KrSommar")) & "')"
dbCom.Execute SQL,,128
[b]Set rs2 = dbCom.Execute("Select @@identity")
KrID = rs2(0)
Antal = request("Antal")
oka = 1
For i = 1 to Antal
dagarID = Request.Form("dagarID" & oka)
tid = Request.Form("tid" & oka)
SQL2 = "INSERT INTO krSpel (dagarID, tid, KrID)" & _
" VALUES(" & SQLEncode(dagarID) & ", " & _
" '" & SQLEncode(tid) & "', " & _
" " & SQLEncode(KrID) & ")"
dbCom.Execute SQL2,,128
oka = oka + 1
Next[/b]
rs2.Close
Set rs2 = Nothing
dbCom.Close
Set dbCom = Nothing
%>