---
title: "Hjälp med For-sats"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/90468-hjälp-med-for-sats"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Havregryn"
published: "2003-11-15T11:28:02.000Z"
updated: "2003-11-15T16:39:02.000Z"
replies: 7
views: 278
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/90468-hjälp-med-for-sats"
---

# Hjälp med For-sats

## #1 — Havregryn, 2003-11-15T11:28Z

Hej, jag har nu spenderat min morgontid med att försöka lösa så att det ska kunna gå att lägga till x antal länkar i ett länkarkiv. Det har gått ganska bra fram tills nu:

```
If Request.Querystring("val") = "nyLank" then

Response.Write "<form method='post' action='?val=nyLankSteg2'>" &_
"<br><b>Lägg till nya länkar</b><br><br>" &_
"Hur många länkar vill du lägga till?<br>" &_
"<input type='text' name='antalLankar' size='1'><br><br>" &_
"<input type='submit' value='Skicka'></form>"

ElseIf Request.Querystring("val") = "nyLankSteg2" then

Response.Write "<form method='post' action='?val=nyLankSteg3'>" &_
"<tr><td><b>Skriv in dina länkar</b></td>"

For X = 1 To Request.Form("antalLankar")

Response.Write "<tr><td><b>Namn " & X & ":</b></td><td><input type='text' name='namn' size='50'></td>" &_
"<tr><td><b>Kategori " & x & ":</b></td><td><input type='text' name='kategori' size='50'></td>" &_
"<tr><td><b>URL " & x & ":</b></td><td><input type='text' name='url' size='50'></td>" &_
"</td><tr><td><hr size='1' height='1' color='#eeeeee'></tr></td>"

Next
Response.Write "<tr><td><input type='submit' value='Skicka'></form></tr></td>"

ElseIf Request.Querystring("val") = "nyLankSteg3" then

For Each Value In Request.Form

namn = Request.Form("namn")
kategori = Request.Form("kategori")
url	= Request.Form("url")

objConn.Execute("INSERT INTO lankar (namn,kategori,url) VALUES('"& namn &"','"& kategori &"','"& url &"')") 	

Next
End If
```

Hmm... det fungerar, men det fungerar inte riktigt så som jag hade tänkt mig. För som det är nu så adderas all data i varje post. D.v.s om jag tex väljer att jag vill lägga till fem länkar, så hamnar alla fem länkarna i alla poster, i samma fält. 
Ungefär så här:
Namn \| Kategori \| Url
a,b,c  \| k,j,a \| f,ma,
a,b,c  \| k,j,a\| f,m,a
Osv.

Jag vill ha det så att det blir så här:
Namn \| Kategori \| Url
a        \| k             \| f
b        \| j              \| m

Hoppas någon försår vad jag menar! :p

Permalänk: https://www.webforum.nu/p/90468

## #2 — Sebbe, 2003-11-15T11:45Z

Kanske så här?

```
If Request.Querystring("val") = "nyLank" then
  Response.Write "<form method='post' action='?val=nyLankSteg2'>" &_
"<br><b>Lägg till nya länkar</b><br><br>" &_
"Hur många länkar vill du lägga till?<br>" &_
"<input type='text' name='antalLankar' size='1'><br><br>" &_
"<input type='submit' value='Skicka'></form>"
ElseIf Request.Querystring("val") = "nyLankSteg2" then
  Response.Write "<form method='post' action='?val=nyLankSteg3'>" &_
"<tr><td><b>Skriv in dina länkar</b></td>"

  For X = 1 To CInt(Request.Form("antalLankar"))
    Response.Write "<tr><td><b>Namn " & X & ":</b></td><td><input type='text' name='namn" & x & "' size='50'></td>" &_
"<tr><td><b>Kategori " & x & ":</b></td><td><input type='text' name='kategori" & x & "' size='50'></td>" &_
"<tr><td><b>URL " & x & ":</b></td><td><input type='text' name='url" & x & "' size='50'></td>" &_
"</td><tr><td><hr size='1' height='1' color='#eeeeee'></tr></td>"
  Next

  Response.Write "<tr><td><input type='submit' value='Skicka'></form></tr></td>"
ElseIf Request.Querystring("val") = "nyLankSteg3" then
  For Each Value In Request.Form
    intCount = intCount + 1
    namn = Request.Form("namn" & intCount)
    kategori = Request.Form("kategori" & intCount)
    url = Request.Form("url" & intCount)

    objConn.Execute("INSERT INTO lankar (namn,kategori,url) VALUES('"& namn &"','"& kategori &"','"& url &"')") 	
  Next
End If
```

Permalänk: https://www.webforum.nu/p/1205749

## #3 — Havregryn, 2003-11-15T11:59Z

Hmm... Får följande fel dock:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
\[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] Fältet 'lankar.namn' får inte vara tomt.
/bhif/admin.asp, line 292

Den pekar på följande rad:

```
objConn.Execute("INSERT INTO lankar (namn,kategori,url) VALUES('"& namn &"','"& kategori &"','"& url &"')")
```

Permalänk: https://www.webforum.nu/p/1205756

## #4 — Sebbe, 2003-11-15T12:06Z

Hm... Om du ändrar det blocket till det här då? :)

```
ElseIf Request.Querystring("val") = "nyLankSteg3" then
  For Each Value In Request.Form
    If intCount Mod 3 = 0 Then i = i + 1

    intCount = intCount + 1
    namn = Request.Form("namn" & i)
    kategori = Request.Form("kategori" & i)
    url = Request.Form("url" & i)

    objConn.Execute("INSERT INTO lankar (namn,kategori,url) VALUES('"& namn &"','"& kategori &"','"& url &"')") 	
  Next
End If
```

Permalänk: https://www.webforum.nu/p/1205758

## #5 — Havregryn, 2003-11-15T12:48Z

Nu ser det bättre ut, MEN nu skrivs det ut x antal poster med samma innehåll, där X = med så många länkar man valde att lägga till.

Permalänk: https://www.webforum.nu/p/1205771

## #6 — Sebbe, 2003-11-15T13:17Z

Morgontrötthet? :OO

```
ElseIf Request.Querystring("val") = "nyLankSteg3" then
  For Each Value In Request.Form
    If intCount Mod 3 = 0 Then
      i = i + 1
      namn = Request.Form("namn" & i)
      kategori = Request.Form("kategori" & i)
      url = Request.Form("url" & i)

      objConn.Execute("INSERT INTO lankar (namn,kategori,url) VALUES('"& namn &"','"& kategori &"','"& url &"')")
    End If

    intCount = intCount + 1
  Next
End If
```

Permalänk: https://www.webforum.nu/p/1205781

## #7 — Havregryn, 2003-11-15T14:53Z

Tack så mycket Sebbe! Nu fungerar det utmärkt!
Vad exakt betyder/gör följande kodsnutt?

```
If intCount Mod 3 = 0 Then
```

Permalänk: https://www.webforum.nu/p/1205810

## #8 — cyprys, 2003-11-15T16:39Z

Det är en matematisk term som returnerar resten vid en division. Modus eller nått. 

8 div 3 = 2 \* 3 + 2
9 div 3 = 3 \* 3 + 0
10 div 3 = 3 \* 3 + 1
11 div 3 = 3 \* 3 + 2

\---

8 mod 3 = 2
9 mod 3 = 0
10 mod 3 = 1
11 mod 3 = 2

osv

Permalänk: https://www.webforum.nu/p/1205845

---

Tråden på webben: https://www.webforum.nu/amne/asp/90468-hjälp-med-for-sats
