---
title: "ändra flera poster"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/10871-ändra-flera-poster"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "aleborg"
published: "2001-07-31T17:47:00.000Z"
updated: "2001-08-01T13:57:00.000Z"
replies: 7
views: 242
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/10871-ändra-flera-poster"
---

# ändra flera poster

## #1 — aleborg, 2001-07-31T17:47Z

Jag har en kolumn som man kan sortera efter, den är en integer, där man kan sätta i vilken ordning posterna ska visas.

Men jag vill ju gärna inte ha dubbletter och jag vill att om man ändrar från 8 till 3 så ska alla andra poster som har 3 eller större ändras automatiskt.
Hur ska jag göra?
Så här långt har jag kommit:) :

```
SSSQL="Select * From Markmat Where MarkID="& Request.QueryString("save")
Set mark=Conn.Execute(SSSQL)

If objUpload.Form("MarkOrder")<>mark("MarkOrder") Then
'nått... vad?
End If
mark.Close
Set mark=Nothing
```

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

## #2 — cyprys, 2001-07-31T18:00Z

Du får in, genom formulär eller vad du vill,  den gamla placeringen av en post genom "plats" och bestämmer dess nya plats genom ny_plats.
Tabellen heter Markmat och kolumnen som sorterar heter Markplats.

```
<%
plats = cint(Request.form("Order"))
ny_plats = cint(Request.form("newOrder"))

SQL = "UPDATE Markmat SET Markplats = "&ny_plats&" WHERE Markplats = "&plats&" "

SQL2 = "UPDATE Markmat SET Markplats = Markplats -- 1 WHERE Markplats > "&plats&" "

conn.execute SQL
conn.execute SQL2
%>
```

Fast jag vet inte riktigt om det här funkar? Skrev bara ihop det nu.
Kanske någon av de riktiga SQL-gudarna kan hjälpa till..
**LarsG... Var är du**   :e

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

## #3 — LarsG, 2001-07-31T18:03Z

```
SSSQL="Select MarkOrder From Markmat Where MarkID="& Request.QueryString("save")
Set mark=Conn.Execute(SSSQL)
If objUpload.Form("MarkOrder") <> mark("MarkOrder") Then
If objUpload.Form("MarkOrder") > mark("MarkOrder") Then
 SSSQL = "update MarkMat set MarkOrder = Markorder - 1 where MarkOrder between " & mark("markorder") & " + 1 and " & objUpload.Form("MarkOrder")
else  
SSSQL = "update MarkMat set MarkOrder = Markorder + 1 where MarkOrder between " & objUpload.Form("MarkOrder") & " and " & mark("markorder") & " - 1 "

End If
conn.execute SSSQL
SSSQL = "update markmat set MarkOrder = " & objUpload.Form("MarkOrder") & " where MarkID="& Request.QueryString("save")
conn.execute SSSQL
end if
mark.Close
Set mark=Nothing
```

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

## #4 — cyprys, 2001-07-31T18:06Z

Snabbare än pizzan kommer till dörrn :e

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

## #5 — aleborg, 2001-07-31T18:23Z

den omvandlar inte dom andra och man kan bara ändra till mindre än nuvarande siffra :(

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

## #6 — aleborg, 2001-07-31T18:31Z

neråt(3 till 8) funkar det men uppåt(8 till 3) så blir det dubbletter

Kan man på nått sätt lopa igenom alla och sätta nya värden på alla genom att ta det lägsta värdet och sätta dit en etta, näst lägsta en tvåa osv... kommer behöva det för delete funktionen...

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

## #7 — aleborg, 2001-08-01T12:20Z

någon?

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

## #8 — aleborg, 2001-08-01T13:57Z

Får inte detta att funka:

```
SSSQL="Select MarkOrder From Markmat Where MarkID="& Request.QueryString("save")
Set mark=Conn.Execute(SSSQL)
If objUpload.Form("MarkOrder") <> mark("MarkOrder") Then
If objUpload.Form("MarkOrder") > mark("MarkOrder") Then
STSQL = "update Markmat set MarkOrder = MarkOrder - 1 where MarkBel="& mark("MarkBel") &" AND MarkOrder between " & mark("markorder") & " + 1 and " & objUpload.Form("MarkOrder")
else 
STSQL = "update Markmat set MarkOrder = MarkOrder + 1 where MarkBel="& mark("MarkBel") &" AND MarkOrder between " & objUpload.Form("MarkOrder") & " and " & mark("markorder") & " - 1 "
End If
conn.execute STSQL
SSSQL = "update markmat set MarkOrder = " & objUpload.Form("MarkOrder") & " where MarkID="& Request.QueryString("save")
conn.execute SSSQL
end if
mark.Close
Set mark=Nothing
```

Om man ändrar en siffra från 2 till 8 så funkar det men ändrar man från 8 till 2 så blir ordningen 1,2,2,3,4,5,6,7,9

Nån som vet vad felet är???? Please???

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/10871-ändra-flera-poster
