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
Mon Jun 11 18:43:19 CEST 2007


Simon Bienlein schrieb:
> Hallo zusammen,
> 
> mein Problem erscheint mir eigentlich recht einfach - ich komme aber
> trotzdem nicht auf die Lösung.
> 
> Eine Tabelle hat folgende spalten:
> id int not null auto_increment primary key,
> name varchar(50) not null,
> prio int not null
> 
> Die Sortierung der Datensätze erfolgt durch die Spalte Prio. Nun möchte
> ich einen Datensatz nach oben und unten verschieben können. [...]

wenn immer nur ein Eintrag verschoben wird:

// +, noch 'oben'
UPDATE `table`
SET `prio` = `prio` - 1
WHERE `prio` BETWEEN $prio_old AND $prio_new;
// oder
// -, nach unten
UPDATE `table`
SET `prio` = `prio` + 1
WHERE `prio` BETWEEN $prio_old AND $prio_new;

// und natürlich
UPDATE `table`
SET `prio` = $prio_new
WHERE `id` = $id_of_moved_object;




-- 
Sebastian Mendel

www.sebastianmendel.de

php::bar PHP Wiki   -   Listenarchive