Hej!
Jag har lite problem med en sak jag sitter och filar på.
Det är nämligen såhär. Jag håller på att fixa till ett gammalt adminscript till en sida där jag visar vad som går på bio. För att lägga till alla de här filmerna känns det dock lite värdelöst att sitta och lägga in samma filmer femton gånger (efetrsom den visas just femton gånger). Istället har jag löst det så att man i ett fält väljer antal visningar och sedan bara fyller i vecka, dag och tid femton gånger. Titel, beskrivning, bild och pris behöver bara fyllas i en gång. För exempel: http://81.230.36.24/bio/admin_copy(1).asp
Egen server, uppe temporärt. Skall försöka hitta annan plats inom det snaraste ;)
Problemet är som följer. Jag har inte en aning om hur jag skall få detta att fungera när jag skall lägga in det i databasen. Dagens kodsnutt ser ut såhär:
If Request.QueryString("do") = "add" Then
titel = Request.Form("titel")
text = Request.Form("text")
vecka = Request.Form("vecka")
dag = Request.Form("dag")
bild = Request.Form("bild")
starttid= Request.Form("tid")
pris = Request.Form("pris")
' SQL = "Insert Into bio(titel) Values('" & titel & "')"
SQL = "Insert Into bio(titel, [text], vecka, dag, bild, starttid, pris) Values('" & titel & "', '" & text & "',"_
& vecka & ", " & dag & ", '" & bild & "', '" & starttid &"', '" & pris & "')"
Con.Execute(SQL)
Session("mess") = "Händelsen är nu inlagd i databasen"
Con.Close
Set Con = nothing
Response.Redirect "admin.asp"
End If
Denna snutten är dock från tiden innan jag gjorde om så att man inte behövde skriva om allt igen. Därför ber jag er hjälpa mig rätta till den så den funkar med exemplet jag bifogade.
Tack//
Det kommer inte att fungera att bara göra så. Jag ber om ursäkt om jag var otydlig men vad jag behöver är att sätta in allt i databas en gång per "visning". Alltså, väljer jag femton visningar (se exemplet inlägg #1) så måste jag lägga til först:
vecka1, dag1, tid1, titel, text, bild, pris
sedan:
vecka2, dag2, tid2, titel, text, bild, pris
osv till vecka 15, dag15 osv. är insatta i dbn...
Problemet kallas tankefel :r
Anyhow, nu har jag loopat runt lite men har nog gjort något gravt fel. Allting fungerar toppen, får inga felmeddelanden men den lägger inte till i databasen :q. Titta i exemplet i inlägg #1.
Koden ser ut:
<%
valtantal = request.form("antal")
Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/bio.mdb")&";"
If Request.QueryString("do") = "add" Then
addloop=1
do until addloop = valtantal +1
titel = Request.Form("titel")
text = Request.Form("text")
vecka = Request.Form("vecka'&=intloop&'")
dag = Request.Form("dag'&=intloop&'")
bild = Request.Form("bild'&=intloop&'")
starttid= Request.Form("tid")
pris = Request.Form("pris")
' SQL = "Insert Into bio(titel) Values('" & titel & "')"
SQL = "Insert Into bio(titel, [text], vecka, dag, bild, starttid, pris) Values('" & titel & "', '" & text & "',"_
& vecka & ", " & dag & ", '" & bild & "', '" & starttid &"', '" & pris & "')"
Con.Execute(SQL)
addloop = addloop+1
loop
Con.Close
Set Con = nothing
Session("mess") = "Händelsen är nu inlagd i databasen"
Response.Redirect "admin_copy(1).asp"
End If
%>
<%
valtantal = Cint(request.querystring("antal"))
' Kopplingen till databasen
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/bio.mdb")
If Request.QueryString("do") = "add" Then
addloop=1
do until addloop = valtantal +1
titel = Request.Form("titel")
text = Request.Form("text")
vecka = Request.Form("vecka'&=intloop&'")
dag = Request.Form("dag'&=intloop&'")
bild = Request.Form("bild'&=intloop&'")
starttid= Request.Form("tid")
pris = Request.Form("pris")
' SQL = "Insert Into bio(titel) Values('" & titel & "')"
SQL = "Insert Into bio(titel, [text], vecka, dag, bild, starttid, pris) Values('" & titel & "', '" & text & "',"_
& vecka & ", " & dag & ", '" & bild & "', '" & starttid &"', '" & pris & "')"
Con.Execute(SQL)
Con.Close
Set Con = nothing
addloop = addloop+1
loop
Session("mess") = "Händelsen är nu inlagd i databasen"
Response.Redirect "admin_copy(1).asp"
End If
%>
Jag redirectas precis som jag skall, SQLfrågorna ser fina ut, de innehåller den informationen som jag vill att de skall...
Drivern är bytt till OLEDB... Valtantal fixad så den ger precis rätt.
WTF är fel. Ingenting landar i databasen ju =(.
Konstigt att du inte får några felmeddelanden. Du har inte on error resume next i koden?
Du kan inte stänga connectionobjektet i loopen heller. Lägg utanför, tillsammans med redirect.
Inget on error resume next i den här koden inte.
Däremot får jag felmeddelande när jag lägger alla connectionobjekten utanför loopen.
Meddelandet lyder:
Feltyp:
Körningsfel i Microsoft VBScript (0x800A01A8)
Objekt krävs.: 'Con'
/bio/admin_copy(1).asp, line 42
Line 42 ligger i den här biten:
addloop = addloop+1
loop
Conn.Execute(SQL)
Conn.Close
Set Conn = nothing
Du har inget värde i Request.Form("antal") eller Request.Querystring("antal"). Fältet "antal" ligger inte i det formulär du postar, så det värdet får du aldrig med, och du lägger inte in någon querystring som heter antal.
Missade visst SannyWs inlägg helt :r
Jo, det har jag visst. Jag skriver ut värdet <%=valtantal%> i koden och får beroende på valt antal i formulärfältet "antal" ett tal mellan 1-15 ;). Så den biten stämmer.
Jag ändrade som SannyW skrev och får numera:
Feltyp:
Microsoft JET Database Engine (0x80040E0C)
Det angavs inte någon kommandotext för kommandoobjektet.
/bio/admin_copy(1).asp, line 42
Kodsnutten med Line42 i ligger i mitt tidigare inlägg...
Lik förbannat envisas det med att inte lägga till något och ändå inte visa felmeddelande... Jag fattar absolut ingenting längre.
R// Deletegrejjen fixad
Nu funkar ingenting? Har tagit bort response.redirect satsen men fortfarande redirectas jag efter att jag har skickat in formuläret? Även prövat att uppdatera med CTRL + F5.
Nu går jag och lägger mig. Orkar inte med...
265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e