07. juni 2006 - 18:54Der er
9 kommentarer og 1 løsning
Spring over, hvis felt er tomt.
Hej. Jeg har fået sammenkogt noget kode der uploader 10 billeder, samt gemmer sti navnene i hver deres felt i en db-tabel. Problemet med denne kode er bare, at felterne i min form ikke må være tomme.
Jeg mangler med andre ord nogle if sætninger der siger, f.eks. hvis img2 er tom, så skal den springe denne over:
<% Dim RSnyhed__MMColParam RSnyhed__MMColParam = "1" If (Request.QueryString("id") <> "") Then RSnyhed__MMColParam = Request.QueryString("id") End If %> <% Set Upload = Server.CreateObject("Persits.Upload") Upload.OverwriteFiles = False Count = Upload.SaveVirtual ("/lokalinfo/nyhederimages")
//Databaseforbindelse - husk at angive sti til din database Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("/db/ballumby.mdb") Conn.Open DSN
Set File = Upload.Files("FormFilFelt1") If Not File Is Nothing Then 'Kør kode. end if Set File = Upload.Files("FormFilFelt2") If Not File Is Nothing Then 'Kør kode. end if ...
Du kan ikke indbygge IF-sætninger i en tekst streng. Lav det på denne måde: Set File1 = Upload.Files("FormFilFelt1") Set File2 = Upload.Files("FormFilFelt2") ... strSQL = "update nyheder set kol1=kol1 " If Not File1 Is Nothing Then strSQL = strSQL & ", img1='"& File1.fileName &"'" If Not File2 Is Nothing Then strSQL = strSQL & ", img2='"& File2.fileName &"'"
Læg mærke til "kol1=kol1" koden jeg bruger så efterfølgende udbygning af SQL-sætningen bare kræver ", aa=bb" (kommaet!!). Ellers skulle jeg til at tjekke for om der var tilføjet en række eller ej også indsætte ", " for at den ikke roder rundt i kommaerne.
"kol1=kol1" kan være en hvilken som helst kolonne i din tabel bortset fra ID-feltet, da den er Autonummer, og en af imgX kolonnerne, da de evt opdateres senere i sætningen og det kan give problemer.
Ja, nu virker den lidt bedre, men desværre overskriver den ale poster i min tabel.
Set img1 = Upload.Files("img1") Set img2 = Upload.Files("img2") Set img3 = Upload.Files("img3")
Set rs = Server.CreateObject("ADODB.Recordset") strSQL = "update nyheder set overskrift=overskrift" If Not img1 Is Nothing Then strSQL = strSQL & ", img1='"& "/lokalinfo/nyhederimages/" & img1.FileName &"'" If Not img2 Is Nothing Then strSQL = strSQL & ", img2='"& "/lokalinfo/nyhederimages/" & img2.FileName &"'" If Not img3 Is Nothing Then strSQL = strSQL & ", img3='"& "/lokalinfo/nyhederimages/" & img3.FileName &"'" rs.Open strsql, conn, 1, 3
Skal der ikke en sætning ind der siger noget á la WHERE id = request.querystring("id")
Har prøvet denne, men får en fejl Microsoft][ODBC Microsoft Access Driver] Syntax error (comma) in query expression 'id = 64, img1='/lokalinfo/nyhederimages/billede1.jpg', img7='/lokalinfo/nyhederimages/billede2.jpg', img9='/lokalinfo/nyhederimages/billede3.jpg''.
Du mangler din where: If Not img1 Is Nothing Then strSQL = strSQL & ", img1='"& "/lokalinfo/nyhederimages/" & img1.FileName &"'" If Not img2 Is Nothing Then strSQL = strSQL & ", img2='"& "/lokalinfo/nyhederimages/" & img2.FileName &"'" If Not img3 Is Nothing Then strSQL = strSQL & ", img3='"& "/lokalinfo/nyhederimages/" & img3.FileName &"'" strSQL = strSQL &" where id = " & Replace(RSnyhed__MMColParam, "'", "''") rs.Open strsql, conn, 1, 3
<% Dim RSnyhed__MMColParam RSnyhed__MMColParam = "1" If (Request.QueryString("id") <> "") Then RSnyhed__MMColParam = Request.QueryString("id") End If %> <% Set Upload = Server.CreateObject("Persits.Upload") Upload.ProgressID = Request.QueryString("PID") Upload.OverwriteFiles = False Count = Upload.SaveVirtual ("/lokalinfo/nyhederimages")
//Databaseforbindelse - husk at angive sti til din database Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("/db/ballumby.mdb") Conn.Open DSN
'Set rs = Server.CreateObject("ADODB.Recordset") 'strSQL = "update nyheder set img1 = '"if not isnull(request.form("img1") then & "/lokalinfo/nyhederimages/" & Upload.Files(1).FileName & "',img2 = '" & "/lokalinfo/nyhederimages/" & Upload.Files(2).FileName & "',img3 = '" & "/lokalinfo/nyhederimages/" & Upload.Files(3).FileName & "' WHERE id = " & Replace(RSnyhed__MMColParam, "'", "''")
Set img1 = Upload.Files("img1") Set img2 = Upload.Files("img2") Set img3 = Upload.Files("img3") Set img4 = Upload.Files("img4") Set img5 = Upload.Files("img5") Set img6 = Upload.Files("img6") Set img7 = Upload.Files("img7") Set img8 = Upload.Files("img8") Set img9 = Upload.Files("img9") Set img10 = Upload.Files("img10")
Set rs = Server.CreateObject("ADODB.Recordset") strSQL = "update nyheder set overskrift=overskrift" If Not img1 Is Nothing Then strSQL = strSQL & ", img1='"& "/lokalinfo/nyhederimages/" & img1.FileName &"'" If Not img2 Is Nothing Then strSQL = strSQL & ", img2='"& "/lokalinfo/nyhederimages/" & img2.FileName &"'" If Not img3 Is Nothing Then strSQL = strSQL & ", img3='"& "/lokalinfo/nyhederimages/" & img3.FileName &"'" If Not img4 Is Nothing Then strSQL = strSQL & ", img4='"& "/lokalinfo/nyhederimages/" & img4.FileName &"'" If Not img5 Is Nothing Then strSQL = strSQL & ", img5='"& "/lokalinfo/nyhederimages/" & img5.FileName &"'" If Not img6 Is Nothing Then strSQL = strSQL & ", img6='"& "/lokalinfo/nyhederimages/" & img6.FileName &"'" If Not img7 Is Nothing Then strSQL = strSQL & ", img7='"& "/lokalinfo/nyhederimages/" & img7.FileName &"'" If Not img8 Is Nothing Then strSQL = strSQL & ", img8='"& "/lokalinfo/nyhederimages/" & img8.FileName &"'" If Not img9 Is Nothing Then strSQL = strSQL & ", img9='"& "/lokalinfo/nyhederimages/" & img9.FileName &"'" If Not img10 Is Nothing Then strSQL = strSQL & ", img10='"& "/lokalinfo/nyhederimages/" & img10.FileName &"'" strSQL = strSQL &" where id = " & Replace(RSnyhed__MMColParam, "'", "''") rs.Open strsql, conn, 1, 3
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.