Nella pagina dove editi i dati, crea un campo hidden con il valore attuale della posizione.
Nella pagina dove fai gli aggiornamenti scrivi:
codice:
$ordine = campo POST nuovo ordine...
$ordine_old = campo POST vecchio ordine...
$ID = campo POST id record...
if($ordine > $ordine_old){ // se il nuovo ordine è maggiore del vecchio ordine
$update = "UPDATE tabella SET posizione = posizione-1 WHERE posizione >= " . $ordine_old . " AND posizione <= " . $ordine . " AND ID <> " . $ID;
}else{ // se il nuovo ordine è inferiore del vecchio ordine
$update = "UPDATE tabella SET posizione = posizione+1 WHERE posizione >= " . $ordine . " AND posizione <= " . $ordine_old . " AND ID <> " . $ID;
}