Avatar billede rille101 Nybegynder
07. juni 2006 - 18:54 Der 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:

,img2 = '" & "/lokalinfo/nyhederimages/" & Upload.Files(2).FileName & "'

<%
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 rs = Server.CreateObject("ADODB.Recordset")
strSQL = "update nyheder set img1 = '" & "/lokalinfo/nyhederimages/" & Upload.Files(1).FileName & "',img2 = '" & "/lokalinfo/nyhederimages/" & Upload.Files(2).FileName & "',img3 = '" & "/lokalinfo/nyhederimages/" & Upload.Files(3).FileName & "',img4 = '" & "/lokalinfo/nyhederimages/" & Upload.Files(4).FileName & "',img5 = '" & "/lokalinfo/nyhederimages/" & Upload.Files(5).FileName & "',img6 = '" & "/lokalinfo/nyhederimages/" & Upload.Files(6).FileName & "',img7 = '" & "/lokalinfo/nyhederimages/" & Upload.Files(7).FileName & "',img8 = '" & "/lokalinfo/nyhederimages/" & Upload.Files(8).FileName & "',img9 = '" & "/lokalinfo/nyhederimages/" & Upload.Files(9).FileName & "',img10 = '" & "/lokalinfo/nyhederimages/" & Upload.Files(10).FileName & "' WHERE id = " & Replace(RSnyhed__MMColParam, "'", "''")
rs.Open strsql, conn, 1, 3

response.write("gjort")


Kan dog ikke lige umiddelbart finde frem til den rigtige...
Er der nogen der kan hjælpe?
Avatar billede Slettet bruger
07. juni 2006 - 22:25 #1
- øh... hvor er det script henne som uploader? Og er det med eller uden komponent?

\Dan
Avatar billede Slettet bruger
07. juni 2006 - 22:26 #2
SORRY! Jeg overså det...
Avatar billede fennec Nybegynder
08. juni 2006 - 09:27 #3
Prøv med:

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
...
Avatar billede rille101 Nybegynder
08. juni 2006 - 10:40 #4
Den brokker sig...

expected end of statement

Jeg har lige kortet sql'en op for overskuelighedens skyld.
Den if sætning der er i denne er fra mit seneste forsøg, den virker heller ikke...

Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "update nyheder set img1 = '"if not isempty(request.form("img1") then & "/lokalinfo/nyhederimages/" & Upload.Files(1).FileName & end if"',img2 = '" & "/lokalinfo/nyhederimages/" & Upload.Files(2).FileName & "',img3 = '" & "/lokalinfo/nyhederimages/" & Upload.Files(3).FileName & "' WHERE id = " & Replace(RSnyhed__MMColParam, "'", "''")
Avatar billede fennec Nybegynder
08. juni 2006 - 11:07 #5
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.
Avatar billede rille101 Nybegynder
08. juni 2006 - 14:27 #6
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''.
Avatar billede rille101 Nybegynder
08. juni 2006 - 14:29 #7
Skal lige siges, at fejlmeddelsen er kommet frem et tidspunkt efter jeg inkluderede nogle flere billedfelter... derfor img7 og img9
Avatar billede fennec Nybegynder
08. juni 2006 - 14:32 #8
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
Avatar billede rille101 Nybegynder
15. juni 2006 - 15:27 #9
Ja, nu virker det!

Koden kom til at se sådan ud...

<%
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

response.Redirect("CMS-opret-nyhed3b.asp?id=" & request.querystring("id"))
'response.write("gjort")

%>

Smider du lige din jack :)

Tak for hjælpen igen igen!
Avatar billede fennec Nybegynder
15. juni 2006 - 15:31 #10
Han kommer her.

.o) <-- One Eyed Jack
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester