Avatar billede andersasp Nybegynder
29. maj 2006 - 18:52 Der er 11 kommentarer og
2 løsninger

Indsætte flere records via request.querystring

Hejsa,

Jeg har en shoppingcart, hvor man kan købe flere varianter på én gang.

Jeg sender data via en form med følgende data:

request.form("VID")    vises: 2,4,5
request.form("price")  vises: 5,9,2
request.form("color")  vises: 5,8,3

Hvorledes kan jeg indsætte disse x antal informationer i nedenstående funktion?? F.eks. i ovenstående har man valgt 3 forskellinge produkter...

-----------------------------------------

Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open MM_webdatabase_STRING
   
CPvariation    = ?? VID
CPcolor        = ?? color
CPhowmany    = ?? price
CPuniqueid    = Session.SessionId & replace(Request.ServerVariables("remote_addr"), ".", "")
CPdate        = now()


strSql= "INSERT INTO procart (CPvariation, CPcolor, CPhowmany, CPuniqueid, CPdate) VALUES ('" & CPvariation & "', '" & CPcolor & "', '" & CPhowmany & "', '" & CPuniqueid & "', '" & CPdate & "')"

  Conn.Execute(strSql)
    Conn.Close
Avatar billede thesurfer Nybegynder
29. maj 2006 - 19:42 #1
Split dataene op ved ";": http://www.html.dk/tutorials/asp/lektion8.asp

Brug en løkke:
for-løkke
  lav insert-sætning
  execute
next
Avatar billede thesurfer Nybegynder
29. maj 2006 - 19:43 #2
Split dataene op ved ",": http://www.html.dk/tutorials/asp/lektion8.asp

Brug en løkke:
for-løkke
  lav insert-sætning
  execute
next
Avatar billede andersasp Nybegynder
29. maj 2006 - 20:23 #3
Hej, tak for det svar!

Men hvordan får jeg så de 3 data samlet?? er lidt lost med disse løkker :0

Dim variations, howmany, thecolor

Dim variations, howmany, thecolor

variations = Split(request.form("VID"),",")
??
Avatar billede thesurfer Nybegynder
29. maj 2006 - 20:33 #4
Forklaring på split/array (som også er beskrevet på http://www.html.dk/tutorials/asp/lektion8.asp ):

frugter = "æbler,pærer,bananer,appelsiner,citroner"
frugter = split(strengen, ",")
resultatet:

frugter(0) = æbler
frugter(1) = pærer
frugter(2) = bananer
frugter(3) = appelsiner
frugter(4) = citroner

Loop fra 0 og til antallet af elementer i arrayen frugter:

for i = 0 to ubound(frugter)
  response.write "frugt: " & frugter(i) & "<br>"
next

Det du skal gøre, er at erstatte værdien af f.eks. CPvariation, så den er opdateret:

for...
CPvariation = frugter(i)
insert(...)
execute
next

Jeg prøver lige at lave noget kode til dig..
Avatar billede andersasp Nybegynder
29. maj 2006 - 20:35 #5
Ok tak skal du have, jeg tror jeg er med hvordan man gør det med én request.form. Men er dog desværre helt blank med 3!
Avatar billede thesurfer Nybegynder
29. maj 2006 - 20:42 #6
Sådan:

Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open MM_webdatabase_STRING

for i = 0 to ubound(vid)
    CPvariation = vid(i)
    CPcolor = color(i)
    CPhowmany = price(i)
    CPuniqueid    = Session.SessionId & replace(Request.ServerVariables("remote_addr"), ".", "")
    CPdate        = now()
    strSql = "INSERT INTO procart (CPvariation, CPcolor, CPhowmany, CPuniqueid, CPdate) VALUES ('" & CPvariation & "', '" & CPcolor & "', '" & CPhowmany & "', '" & CPuniqueid & "', '" & CPdate & "')"
    Conn.Execute(strSql)
    'response.write strSql & "<br>"
next
Conn.Close

Jeg går ud fra, at du ved hvordan du får værdierne ind i variablerne "vid", "price" og "color".. :-)
Avatar billede andersasp Nybegynder
29. maj 2006 - 20:51 #7
Tak for eksemplet, jeg tror dog desværre jeg stadig er lidt forvirret.

jeg får denne fejlmedelse med følgende:

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'ubound'

/orders/addtoorder.asp, line 21

---------------------------------------------

<%
dim vid, color, price

vid     = request.form("VID")
price    = request.form("howmany")
color    = request.form("color")

Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open MM_webdatabase_STRING

for i = 0 to ubound(vid)
    CPvariation = vid(i)
    CPcolor = color(i)
    CPhowmany = price(i)
    CPuniqueid    = Session.SessionId & replace(Request.ServerVariables("remote_addr"), ".", "")
    CPdate        = now()
    strSql = "INSERT INTO procart (CPvariation, CPcolor, CPhowmany, CPuniqueid, CPdate) VALUES ('" & CPvariation & "', '" & CPcolor & "', '" & CPhowmany & "', '" & CPuniqueid & "', '" & CPdate & "')"
    Conn.Execute(strSql)
    'response.write strSql & "<br>"
next
Conn.Close
%>
Avatar billede thesurfer Nybegynder
29. maj 2006 - 20:57 #8
Du har ikke splittet variablerne:

indlæs variablerne:

vid    = request.form("VID")
price    = request.form("howmany")
color    = request.form("color")

og split dem op ved ",":

vid = split(vid, ",")
price = split(price, ",")
color = split(color, ",")

Nu kan du bruge dem i for-next løkken.
Avatar billede thesurfer Nybegynder
29. maj 2006 - 20:58 #9
Man kan også gøre det direkte:

vid = split(request.form("VID"), ",")
price = split(request.form("howmany"), ",")
color = split(request.form("color"), ",")
Avatar billede andersasp Nybegynder
29. maj 2006 - 21:03 #10
Helt perfekt nu virker det helt kanon!!  tusinde tak for hjælpen, det kunne jeg have brugt hele ugen på :)
Avatar billede thesurfer Nybegynder
29. maj 2006 - 21:05 #11
Hehehe.

Jeg vil anbefale at du læser (og forstår) lektionerne på http://www.html.dk/tutorials/asp/ :-)

Efterlign de eksempler der findes i lektionerne, og ændrer på værdierne og parameterne.. så lærer du hvordan det virker.

- Takker for points :-)
Avatar billede thesurfer Nybegynder
29. maj 2006 - 21:08 #12
Lige et spørgsmål... hvorfor har du angivet titlen "Indsætte flere records via request.querystring"?

Det er en form du arbejder med, og ikke querystring.. :-)
Avatar billede andersasp Nybegynder
30. maj 2006 - 00:36 #13
Ja jeg vil helt sikker kigge noget mere på de lektioner. Ja omkring overskriften, gik det op for mig da jeg klikkede på gem. der skulle have stået form!!
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