|
| Problemer med array/for... next Fra : Belial |
Dato : 21-02-05 16:56 |
|
Jeg har en side, hvor man kan vælge x antal brancher, som en given post skal
oprettes i. Har man valgt 3 brancher skal posten derfor oprettes 3 gange.
Problemet er, at posten lige nu kun bliver indsat 1 gang og med alle de
valgte brancher i ét felt.
Min kode ser således ud:
arrBranche = request.form("branche")
response.write arrBranche & "<br>"
' Læg svaret i et array
arrBranche = split(arrBranche ,",")
' Læs fra array med en løkke
for ix = 0 to ubound(arrBranche)
' Her tilføjer du en ny post
sql = "INSERT INTO .... (her kommer sql sætningen)
Connect.Execute(sql)
next
Er der nogen der kan se, hvor den går galt?
| |
Carsten Pedersen (21-02-2005)
| Kommentar Fra : Carsten Pedersen |
Dato : 21-02-05 17:16 |
|
"Belial" <666_NOSPAM@esenet.dk> skrev i en meddelelse
news:421a0482$0$48683$edfadb0f@dread15.news.tele.dk...
> Jeg har en side, hvor man kan vælge x antal brancher, som en given post
> skal oprettes i. Har man valgt 3 brancher skal posten derfor oprettes 3
> gange. Problemet er, at posten lige nu kun bliver indsat 1 gang og med
> alle de valgte brancher i ét felt.
>
> Min kode ser således ud:
>
> arrBranche = request.form("branche")
> response.write arrBranche & "<br>"
> ' Læg svaret i et array
> arrBranche = split(arrBranche ,",")
> ' Læs fra array med en løkke
> for ix = 0 to ubound(arrBranche)
> ' Her tilføjer du en ny post
>
> sql = "INSERT INTO .... (her kommer sql sætningen)
>
> Connect.Execute(sql)
>
> next
>
>
> Er der nogen der kan se, hvor den går galt?
Det er svært at svare på ud fra de givne oplysninger. Hvordan ser din
SQL-sætning ud udskrevet?
--
Mvh
C@rsten
| |
Belial (21-02-2005)
| Kommentar Fra : Belial |
Dato : 21-02-05 17:49 |
|
>> Er der nogen der kan se, hvor den går galt?
>
> Det er svært at svare på ud fra de givne oplysninger. Hvordan ser din
> SQL-sætning ud udskrevet?
Det er som jeg ser det ikke min SQL sætning, der er problemer med, for den
indsætter det hele som den skal. Problemet er som nævnt, at det hele bliver
indsat én gang i databasen i stedet for 1 gang pr. branche man har valgt.
Har man f.eks. valgt 3 brancher så skal den indsætte posten 3 gange. Derfor
mener jeg at problemet er i for... next løkken, men jeg kan bare ikke se
hvor?
| |
NoMoreSpam (21-02-2005)
| Kommentar Fra : NoMoreSpam |
Dato : 21-02-05 19:08 |
|
> > Jeg har en side, hvor man kan vælge x antal brancher, som en given post
> > skal oprettes i. Har man valgt 3 brancher skal posten derfor oprettes 3
> > gange. Problemet er, at posten lige nu kun bliver indsat 1 gang og med
> > alle de valgte brancher i ét felt.
> >
> > Min kode ser således ud:
> >
> > arrBranche = request.form("branche")
> > response.write arrBranche & "<br>"
> > ' Læg svaret i et array
> > arrBranche = split(arrBranche ,",")
> > ' Læs fra array med en løkke
> > for ix = 0 to ubound(arrBranche)
> > ' Her tilføjer du en ny post
> >
> > sql = "INSERT INTO .... (her kommer sql sætningen)
> >
> > Connect.Execute(sql)
> >
> > next
> >
> >
> > Er der nogen der kan se, hvor den går galt?
Du kunne jo prøve at udskrive hvad der står i arrayet
for ix = 0 to ubound(arrBranche)
response.write "Nr " & iX & " indhold " & arrBranche(ix) & "<br>"
next
Jeg mener at første linie skal være: for ix = 0 to ubound(arrBranche)-1
men det kan du se når du gennemløber arrayet.
--
Med venlig hilsen
Tom Jensen
Læs mere om databaser og asp her:
http://www.FFSoft.dk
| |
Belial (21-02-2005)
| Kommentar Fra : Belial |
Dato : 21-02-05 19:40 |
|
> Jeg mener at første linie skal være: for ix = 0 to ubound(arrBranche)-1
> men det kan du se når du gennemløber arrayet.
Ved at gøre dette virker faktisk nogenlunde som det skal. I hvert fald
indsætter den nu det antal gange, som man har valgt brancher. Problemet er
bare at den indsætter f.eks. "butik, hotel, restaurant" i branchefeltet, i
stedet for kun at indsætte brancherne en ad gangen. Nogen idé om hvor
problemet ligger? Sætningen er lige her igen:
arrBranche = request.form("branche")
response.write arrBranche & "<br>"
' Læg svaret i et array
arrBranche = split(arrBranche ,",")
' Læs fra array med en løkke
for ix = 0 to ubound(arrBranche)-1
SQL = "INSERT INTO erhvervsregister( branche, virksomhed, adresse,
tlf, fax, url, email, kommentar_dk, kommentar_de, kommentar_gb) VALUES('"
SQL = SQL & Request.Form("branche") & "', '"
SQL = SQL & Replace(Request.Form("virksomhed"),"'","''") & "', '"
SQL = SQL & Replace(Request.Form("adresse"),"'","''") & "', "
SQL = SQL & Request.Form("tlf") & ", "
SQL = SQL & Request.Form("fax") & ", '"
SQL = SQL & Replace(Request.Form("url"),"'","''") & "', '"
SQL = SQL & Replace(Request.Form("email"),"'","''") & "', '"
SQL = SQL & Replace(Request.Form("kommentar_dk"),"'","''") & "',
'"
SQL = SQL & Replace(Request.Form("kommentar_de"),"'","''") & "',
'"
SQL = SQL & Replace(Request.Form("kommentar_gb"),"'","''") & "')"
Connect.Execute(sql)
next
| |
Jon Klose Larsen (21-02-2005)
| Kommentar Fra : Jon Klose Larsen |
Dato : 21-02-05 20:08 |
|
>
> Problemet er
> bare at den indsætter f.eks. "butik, hotel, restaurant" i branchefeltet, i
> stedet for kun at indsætte brancherne en ad gangen. Nogen idé om hvor
> problemet ligger? Sætningen er lige her igen:
>
> arrBranche = request.form("branche")
> response.write arrBranche & "<br>"
> ' Læg svaret i et array
> arrBranche = split(arrBranche ,",")
> ' Læs fra array med en løkke
>
> for ix = 0 to ubound(arrBranche)-1
>
> SQL = "INSERT INTO erhvervsregister( branche, virksomhed, adresse,
> tlf, fax, url, email, kommentar_dk, kommentar_de, kommentar_gb) VALUES('"
> SQL = SQL & Request.Form("branche") & "', '"
Skal der ikke stå:
SQL = SQL & arrBranche(ix) & "', '"
Så tror jeg du får det som du ønsker.
Jon
| |
Belial (21-02-2005)
| Kommentar Fra : Belial |
Dato : 21-02-05 21:04 |
|
> Skal der ikke stå:
> SQL = SQL & arrBranche(ix) & "', '"
Jo sgu! Jeg fjernede også "-1" i linien "for ix = 0 to ubound(arrBranche)-1"
og nu virker det bortset fra en lille detalje: Efter den har kørt løkken
igennem 1 gang sætter den ved de efterfølgende et mellemrum ind foran
branchenavnet, således at det ikke virker hensigtsmæssigt. Skal man f.eks.
indsætte 4 brancher, så er det kun den første af dem, som står normalt og
uden et mellemrum foran. Hvordan får jeg elimeneret det ene mellemrum?
| |
Belial (21-02-2005)
| Kommentar Fra : Belial |
Dato : 21-02-05 21:22 |
|
"Belial" <666_NOSPAM@esenet.dk> skrev i en meddelelse
news:421a3ebf$0$48642$edfadb0f@dread15.news.tele.dk...
>> Skal der ikke stå:
>> SQL = SQL & arrBranche(ix) & "', '"
>
> Jo sgu! Jeg fjernede også "-1" i linien "for ix = 0 to
> ubound(arrBranche)-1" og nu virker det bortset fra en lille detalje: Efter
> den har kørt løkken igennem 1 gang sætter den ved de efterfølgende et
> mellemrum ind foran branchenavnet, således at det ikke virker
> hensigtsmæssigt. Skal man f.eks. indsætte 4 brancher, så er det kun den
> første af dem, som står normalt og uden et mellemrum foran. Hvordan får
> jeg elimeneret det ene mellemrum?
Jeg har midlertidigt løst problemet ved at tilføjet et trim, så der i min
SQL sætning står "trim(arrBranche(ix))", og det virker fint, men kan du
alligevel se, hvordan jeg kommer problemet helt til livs? Vil meget gerne
have det overflødige mellemrum elimeneret.
| |
Jon Klose Larsen (21-02-2005)
| Kommentar Fra : Jon Klose Larsen |
Dato : 21-02-05 22:45 |
|
"Belial" <666_NOSPAM@esenet.dk> skrev i en meddelelse
news:421a42d3$0$48731$edfadb0f@dread15.news.tele.dk...
>
> "Belial" <666_NOSPAM@esenet.dk> skrev i en meddelelse
> news:421a3ebf$0$48642$edfadb0f@dread15.news.tele.dk...
> >> Skal der ikke stå:
> >> SQL = SQL & arrBranche(ix) & "', '"
> >
> > Jo sgu! Jeg fjernede også "-1" i linien "for ix = 0 to
> > ubound(arrBranche)-1" og nu virker det bortset fra en lille detalje:
Efter
> > den har kørt løkken igennem 1 gang sætter den ved de efterfølgende et
> > mellemrum ind foran branchenavnet, således at det ikke virker
> > hensigtsmæssigt. Skal man f.eks. indsætte 4 brancher, så er det kun den
> > første af dem, som står normalt og uden et mellemrum foran. Hvordan får
> > jeg elimeneret det ene mellemrum?
>
> Jeg har midlertidigt løst problemet ved at tilføjet et trim, så der i min
> SQL sætning står "trim(arrBranche(ix))", og det virker fint, men kan du
> alligevel se, hvordan jeg kommer problemet helt til livs? Vil meget gerne
> have det overflødige mellemrum elimeneret.
Så må du lade være med at skrive det i listen med brancher....
Klip fra tidligere indlæg: f.eks. "butik, hotel, restaurant"
Den eneste anden måde jeg kender, har du jo selv fundet (trim).
Jon
| |
belial (22-02-2005)
| Kommentar Fra : belial |
Dato : 22-02-05 09:29 |
|
> Den eneste anden måde jeg kender, har du jo selv fundet (trim).
Okay. Metoden virker jo også fint, så det går nok. Ville bare gerne have
fundet ud af hvorfor den indsatte det ekstra mellemrum. Men tak for
hjælpen
| |
|
|