Avatar billede jansangill Nybegynder
18. april 2007 - 21:55 Der er 5 kommentarer og
1 løsning

indsætte flere poster samme tid

Hejsa

Jeg har fået lavet noget kode her som udemærket kan indsætte en string. Hvordan får jeg det til at være muligt at indsætte flere variabler på samme tid.

Jeg har 2 tekstboke, hvoraf den ene (hylde) skal tjekke at hylden overhovedet eksisterer. Den anden er info som skal opdateres inden i databasen.

Jeg vil gerne have at begge tekstbokse skal kunne klare flere strenge, som (hylde) 11, 12, 13, 14, 15 etc.  og (info)info1, info2, info3 etc.

Hvis en af hylderne ikke eksisterer skal det sættes til false, men hvis alle hylder er der, skal alt info ind i databasen.

Her er koden, hvis i har brug for yderlig forklaring så bare sig til.

<%
     
Dim hylde, info
hylde =Trim( Request("hylde"))
info = Trim(Request("info"))

  Dim myConnection
  Set myConnection=Server.CreateObject("ADODB.Connection")
    myConnection.ConnectionString="DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & Server.MapPath("../database/jn.mdb")
    myConnection.Open
  Dim loginSQL
    LoginSQL = "SELECT * FROM trial WHERE hylde = '" & hylde & "'"
  Dim myRS
    Set myRS=Server.CreateObject("ADODB.Recordset")
      myRS.Open loginSQL, myConnection
  Dim mainMessage
    If myRS.EOF Then
      mainMessage="hyldeInfo=false"
    Else
      If(StrComp(myRS("hylde"), hylde, vbTextCompare) =0) Then
        set opdater = myConnection.execute("UPDATE trial SET info = '"&info&"' WHERE hylde = '"&hylde&"'")
        mainMessage="hyldeInfo=true"
      Else
        mainMessage = "hyldeInfo=false"
      End If
    End If
  myRS.Close
Set myRS=Nothing
myConnection.Close
Set myConnection=Nothing
  Response.Write(mainMessage)
  %>

på forhånd mange tak.
Avatar billede Slettet bruger
18. april 2007 - 22:27 #1
Hvis det er i MySQL kan det være den her virker:

where Hylde in (" & request.Form("Hylde") & ")
Avatar billede jansangill Nybegynder
19. april 2007 - 00:51 #2
Det er I access. Problemet er mere hvordan jeg får ASP/Access til at vide at efter en komma er der en ny variabel. Hvis vi siger 11,12,13 er 3 variabler skrevet i samme input field.
Avatar billede fennec Nybegynder
19. april 2007 - 08:25 #3
Access understøtter også IN () metoden, men problemet her ar at info også er en komma liste:

Dette ville virker:
UPDATE trial SET info = 'noget tekst' WHERE hylde in (2,5,1,8,4)

Men du er ude efter noget ala:
UPDATE trial SET info = 'noget tekst,noget tekst,noget tekst,noget tekst' WHERE hylde in (2,5,1,8,4)

Det kan men ikke med en update. Insert kan, men kan ikke huske om access har understøttelsen.

Du bliver derfor nød til at updatere enkeltvis. Lav en split på variablerne:

hyldeArr = split(request.form("hylde"),",")
infoArr = split(request.form("info"),",")
for f=0 to uBound(hyldeArr)
  conn.execute("update trial SET info = '"& infoArr(f) &"' WHERE hylde = '"& hyldeArr(f) &"'")
next
Avatar billede jansangill Nybegynder
19. april 2007 - 12:03 #4
Koden ser nu således ud, og det virker, men man har kun muligheden for at indsætte det således 1,2,3 og info1,info2,info3. Det ville være dejligt hvis man kunne gøre således når info er den samme i hver hylde. fx. 1,2,3 og info1.

btw kan man ikke trimme en variabel når split er der?



<%
dim hyldeArr, infoArr

hyldeArr =split(request.form("hylde"),",")
infoArr = split(request.form("info"),",")


  Dim myConnection
  Set myConnection=Server.CreateObject("ADODB.Connection")
    myConnection.ConnectionString="DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & Server.MapPath("../database/jn.mdb")
    myConnection.Open
  Dim loginSQL
    LoginSQL = "SELECT * FROM trial WHERE hylde = '" & hyldeArr(f) & "'"
  Dim myRS
    Set myRS=Server.CreateObject("ADODB.Recordset")
      myRS.Open loginSQL, myConnection
  Dim mainMessage
    If myRS.EOF Then
      mainMessage="hyldeInfo=false"
    Else
      If(StrComp(myRS("hylde"),hyldeArr(f), vbTextCompare) =0) Then
   
      for f=0 to uBound(hyldeArr)
        set opdater = myConnection.execute("update trial SET info = '"& infoArr(f) &"' WHERE hylde = '"& hyldeArr(f) &"'")
    next   
    mainMessage="hyldeInfo=true"
     
      Else
        mainMessage = "hyldeInfo=false"
   
      End If
    End If
 
  myRS.Close
Set myRS=Nothing
myConnection.Close
Set myConnection=Nothing
  Response.Write(mainMessage) %>


Håber du kan hjælpe mig, ellers bare svar, så får du dine point:)
Avatar billede fennec Nybegynder
19. april 2007 - 12:30 #5
Ikke helt med på hvad du mener med trimme en varibel sammen med split, men det kan man godt:

tmp = "  hej,  med  , dig  "
tmp = trim(tmp) 'tmp er nu "  hej,  med  , dig  "
tmpArr = split(tmp)
for f=0 to ubound(tmpArr)
  response.write trim(tmpArr(f)) 'Udskriver "hej", "med" og "dig"
next

.o) <-- one Eyed Jack
Avatar billede fennec Nybegynder
19. april 2007 - 12:32 #6
fejl :o)
tmp er selvfølgelig "hej,  med  , dig" efter trim

Der kan IKKE laves trim på denne måde:
tmp = "  hej,  med  , dig  "
tmpArr = split(tmp)
tmpArr = trim(tmpArr)
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