phpbar.de logo

Mailinglisten-Archive

[php] MySQL: Datensatz nach oben und unten verschieben

[php] MySQL: Datensatz nach oben und unten verschieben

Sebastian Mendel lists at sebastianmendel.de
Die Jun 12 13:26:38 CEST 2007


Simon Bienlein schrieb:
> Hallo Sebastian,
> 
>>> Beim Testen hatten die Spalten id und prio identische Werte (1, 2,
>>> 3). Ich wollte den dritten Datensatz nach oben verschieben:
>> oben? von pos 3 auf 2?
> 
> Genau. Also statt der IDs 1, 2, 3 wäre es dann 1, 3, 2 gewesen.
> 
>> dann müssen die anderen nach 'unten' rücken, nicht nach 'oben'
>> also 2 auf 3 usw.
>>
>> UPDATE test SET prio = prio +1 WHERE  prio BETWEEN 3 AND 2;
> Zwischen 3 und 2 liegt doch nichts ...?

BETWEEN schließt diese Werte mit ein, also 3 und 2


>> oder eben
>>
>> UPDATE test SET PRIO = 2 WHERE id = 3;
> Genau. und bei id = 2 muss prio = 3 entstehen. Die Lösung von Florian
> erledigt das ja geschickt.
> 
> Trotzdem auch dir vielen Dank für deine Hilfe und Tipps.

ja aber er braucht mehr Abfragen ... ;-)

bei mir werden nur alle Datensätze zwichen der Alten und der Neuen Position
um eine Stufe in die Richtung der Alten Position verschoben und dann dem
gewählten Element die neue Position zugedordnet.

(Egal um weiviele Positionen es sich handelt)


-- 
Sebastian Mendel

www.sebastianmendel.de

php::bar PHP Wiki   -   Listenarchive