Mailinglisten-Archive |
Hallo Florian, vielen Dank für deine ausführliche Antwort. Florian Grell wrote: > Sowas in der Art mache ich auch, um Einträge in einer DB nach > Userwünschen sortiert darzustellen. Bei mir heisst die Spalte > "sort_order", aber das macht im Prinzip keinen Unterschied. Hätte ich diesen Spaltennamen verwendet, wäre es vermutlich nicht zu Missverständnissen gekommen *g*. > Das Grundprinzip ist einfach: Wenn man erst einmal draufkommt *g*. > "nach oben": $wish_pos = $current_pos - 1 > "nach unten": $wish_pos = $current_pos + 1 Darauf kam ich im Grunde auch schon. > - Stelle den zu verschiebenden Eintrag ans Ende ($max_pos + 1) Das ist eine gute Idee. > Wenn "nach oben": Verschiebe den Eintrag, der Zur > Zeit an der gewünschten Position steht um eins nach unten. Genau. Also habe ich dann z. b. 1, 2, 4, > SQL: UPDATE table SET sort_order = (sort_order + 1) WHERE > sort_order < $current_pos ORDER BY sort_order DESC LIMIT 1 Das mit der WHERE-Geschichte ist super - darauf muss man erst mal kommen. > - Setze den zu bearbeitenden Eintrag an die gewünschte Position Das ist dann auch wieder logisch. Noch mal vielen Dank für die Lösung:-). VG Simon
php::bar PHP Wiki - Listenarchive