...upsi... ich hab nen kleinen Fehler drin. Damit du die Arraywerte deinen Datensätzen auch wieder zuordnen kannst setzt du einfach in den Value die eindeutige ID des Datensatzes.
In der PHP-Datei baust du dir dann ganz einfach eine Schleife, z.B. foreach, die das Array von oben nach unten durchgeht. Zustäzlich setzt du vor der schleife einen "Counter", der mit 1 beginnt und am Ende der Schleife jeweils um 1 erhöht wird.
In der Schleife führst du einfach zu jedem Datensatz einen SQL-Querys aus, der sich an der ID orientiert und den Counter als neue Position setzt.
Nu' sollte es klappen. In meiner ersten Beschreibung ist mir aufgefallen, dass du die PositionsID garnicht dem Selectfeld übergeben musst. Benenn die Dinger einfach name[] und als Value die ID. Auf der PHP-Datei kommen sie dann sortiert an, und du kannst sie von oben nach unten updaten...
Ach nochwas... manoman... je' mehr man da überlegt, desto einfacher wirds

Du kannst dir den "Counter" auch sparen, da ja jeder übergebene Datensatz auch eine laufende Array-Nummer hat... die allerdings bei 0 beginnt ..
Also.. such dir irgend einen Weg aus
Gruss Jan