Jag vill köra följande kod men ingenting läggs in i databasen. Hur bygger man upp det så att det fungerar?
Jag vill alltså att olika Request.Form ska hämtas beroende på hur mycket For-variabeln i är.
For i = 1 to counter
AnswerField = "answer" & i
Connect.Execute "UPDATE Poll_answers SET name = '"&Request.Form("[b]"&AnswerField&"[/b]")&"' WHERE attachment = "&Request.QueryString("id")
Next
:)
solbulleMedlem sedan mars 20015 287 inlägg Kanske:
Request.Form(AnswerField)
Nope, verkar faktiskt inte göra någon skillnad, hmm..
SPiNMedlem sedan mars 20007 896 inlägg Hur ser SQL-satsen ut om du skriver ut den istället för att köra den? Som solbulle visade ska fungera...
LarsGMedlem sedan dec. 200012 464 inlägg Hur ser sql-strängen ut innan du gör execute?
Nu försöker du uppdatera samma kolumn flera gånger. Varför det?
Ok, jag får bara med mg siffran, inte strängen före:
For i = 1 to counter
AnswerField = "answer"&i
ger 1 istället för answer1
:)
solbulleMedlem sedan mars 20015 287 inlägg Är du verkligen helt säker på det?
Jag kör denna koden nu:
counter = 0
For Each fld In Request.Form
If Request.Form( fld ) <> "" Then
counter = counter + 1
End If
Next
counter = counter - 1
Connect.Execute "UPDATE Poll_questions SET name = '"&Request.Form("question")&"' WHERE id = "&Request.QueryString("id")
For i = 0 to counter
str = "UPDATE Poll_answers SET name = '"&Request.Form(i+1)&"' WHERE attachment = "&Request.QueryString("id")
'Response.Write str
'Response.End
Connect.Execute str
Next
Fälten heter question samt 1,2,3 osv.
Problemet: Har jag två fält så läggs det andra fältets värde in två gånger. Har jag fyra fält läggs det fjärde fältets värde in fyra gånger.
:)
Request.Form("AnswerField")
inte
Request.Form(AnswerField)
eller?
voigtann1 skrev:
Request.Form("AnswerField")
inte
Request.Form(AnswerField)
eller?
Nähä du! ;)
För det första vill jag inte ha in ågra strängar utan i så fall en variabels värde som i sig är en sträng.
Dessutom kör jag nu med koden ovan...
:)
Vad som är underligt är att utskriften blir:
UPDATE Poll_answers SET name = 'Fråga1' WHERE attachment = 26
Fråga1 är nämligen vad som står i fältet för frågan!
:q
crisse6Medlem sedan dec. 20002 526 inlägg har du kollat sa att du har ratt namn pa falten? och att du inte skriver fel form-namn?
Ja, formulärnamnen är korrekta.
Kom också på att name är reserverat men det hjälpte inte även om jag bytte det till nom.
:)
solbulleMedlem sedan mars 20015 287 inlägg Jag vet inte, men när du kör:
For Each fld In Request.Form
och räknar dina formfält, du tänker väl på att då räknas alla formfält som skickas, vare sig det är frågor eller svar.
Kanske att du ska posta koden el länk till sidan med formuläret?
solbulle skrev:
Jag vet inte, men när du kör:
For Each fld In Request.Form
och räknar dina formfält, du tänker väl på att då räknas alla formfält som skickas, vare sig det är frågor eller svar.
Kanske att du ska posta koden el länk till sidan med formuläret?
Ja, det gör jag. Det är därför jag använder:
counter = counter - 1 så att jag räknar bort frågan från svaren.
Sidan med formuläret är med lösenord men vänta lite så fixar jag det... adress kommer.
:)
*länk borttagen*
Gör ingenting dumt bara! ;)
r) Sorry, kan inte ändra på't nu. Ställ frågor så svarar jag.