Har ett skumt problem. Har en databas med 48 rader som i nedan loop ska uppdateras. Scriptet kör igenom utan error, har även prövat skriva ut "sql" med response.write för att se att strängarna loopas ut rätt. Men felet är att databasen aldrig uppdateras...
Någon som kan se varför, jag ser inte vad som är fel och det gör tydligen inte servern heller? (Har kommenterat i koden så att ni enklare kan se vad jag gör.)
for i = 1 to 48
'Variabel som byter namn med loopen för att veta vilket fältnamn som ska hämtas
sku = "sku" & Cstr(i)
'DB uppkoppling
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "minDSN"
'sql sträng
sql = "UPDATE games SET sku = '"& request.form(sku) &"' WHERE id = '" & i &"'"
conn.execute(sql)
next
Jag ser tre märkligheter:
1. Har du 48 kolumner i tabellen games som heter sku1, sku2 ... ?
2. Variabeln i är numerisk och ska inte ha ' ' runt sig.
3. Variabeln sku används aldrig till något inne i loopen.
Jag ser tre märkligheter:
1. Har du 48 kolumner i tabellen games som heter sku1, sku2 ... ?
*Nej, en kolumn som heter "sku". Däremot när jag skriver ut dem i 48 stycken input text boxar(Där man kan redigera dem) som jag döper till sku1, sku2, osv.
sql = "UPDATE games SET sku = '"& request.form(sku) &"' WHERE id = " & i & ""*
2. Variabeln i är numerisk och ska inte ha ' ' runt sig. Har prövat med och utan.
3. Variabeln sku används aldrig till något inne i loopen. Jo, sku är variabeln som sätter namnet på den input text box som scriptet ska hämta data ifrån.(Hoppas jag verkligen i alla fall, den gör det med response.write)
Jag ser tre märkligheter:
1. Har du 48 kolumner i tabellen games som heter sku1, sku2 ... ?
*Nej, en kolumn som heter "sku". Däremot när jag skriver ut dem i 48 stycken input text boxar(Där man kan redigera dem) som jag döper till sku1, sku2, osv.
sql = "UPDATE games SET sku = '"& request.form(sku) &"' WHERE id = " & i & ""*
2. Variabeln i är numerisk och ska inte ha ' ' runt sig. Har prövat med och utan.
3. Variabeln sku används aldrig till något inne i loopen. Jo, sku är variabeln som sätter namnet på den input text box som scriptet ska hämta data ifrån.(Hoppas jag verkligen i alla fall, den gör det med response.write)
Vad vill du då göra med följande rad?
sku = "sku" & Cstr(i)
K@llen, han använder ju den i sin request.form(sku). Och han sätter fältet sku till skun beroende på vad var loopen är.
Saturday, gör en response.write på det hela och skicka in frågan direkt i databasen och se vad den säger. Du kan prova att göra en liknane select också.
K@llen, han använder ju den i sin request.form(sku). Och han sätter fältet sku till skun beroende på vad var loopen är.
Saturday, gör en response.write på det hela och skicka in frågan direkt i databasen och se vad den säger. Du kan prova att göra en liknane select också.
on error goto 0
'Öppna inte 48 databaskopplingar
'DB uppkoppling
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "minDSN"
for i = 1 to 48
'Variabel som byter namn med loopen för att veta vilket fältnamn som ska hämtas
sku = "sku" & Cstr(i)
'sql sträng
sql = "UPDATE games SET sku = '"& replace(request.form(sku),"'","''") &"' WHERE id = " & i
conn.execute sql,,128
next
conn.close
on error goto 0
'Öppna inte 48 databaskopplingar
'DB uppkoppling
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "minDSN"
for i = 1 to 48
'Variabel som byter namn med loopen för att veta vilket fältnamn som ska hämtas
sku = "sku" & Cstr(i)
'sql sträng
sql = "UPDATE games SET sku = '"& replace(request.form(sku),"'","''") &"' WHERE id = " & i
conn.execute sql,,128
next
conn.close
K@llen, han använder ju den i sin request.form(sku). Och han sätter fältet sku till skun beroende på vad var loopen är.
Saturday, gör en response.write på det hela och skicka in frågan direkt i databasen och se vad den säger. Du kan prova att göra en liknane select också.
Såg det. Sveret blev uppdaterat precis när jag svarade.
Jag skulle nog inte gjort på det sättet. Utan uformat skriptet så jag kan uppdatera alla rader i samma fråga.
Något i stil med: (psevdokod)
UPDATE games SET sku = '"& request.form(sku) &"' WHERE id in (" & request.form("IdFromCheckboxar"))
Såg det. Sveret blev uppdaterat precis när jag svarade.
Jag skulle nog inte gjort på det sättet. Utan uformat skriptet så jag kan uppdatera alla rader i samma fråga.
Något i stil med: (psevdokod)
UPDATE games SET sku = '"& request.form(sku) &"' WHERE id in (" & request.form("IdFromCheckboxar"))
Det är fullt möjligt att det är bättre. Detta är dock första gången jag uppdaterar mer än en rad i en databas så detta var den enda lösningen jag kunde komma på.
130 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe