phpbar.de logo

Mailinglisten-Archive

[php] MySQL: Datensatz nach oben und unten verschieben

[php] MySQL: Datensatz nach oben und unten verschieben

Simon Bienlein s.bienlein at gmx.de
Die Jun 12 12:37:06 CEST 2007


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