Seite 1 von 1

liste mit veränderbarer reihenfolge

Verfasst: 18.06.2004 12:02
von k-5
ich versuch grad ne liste zu erstellen, bei der der user die reihenfolge der einzelnen elemente verschieben kann.

das problem dabei was ist der effektivste weg da ne sortierungsspalte einzuführen ..

meine idee:
einen integer, und bei jedem verschieben jeweils die zahlen vertauschen.
(auslesen der darunter/darüber liegenden nummer, eintrag darüber auf '-1' setzen, den aktuellen auf das ausgelesene, den darüber auf den alten des aktuellen)
problem: 4(!) queries

da muss es doch was effektiveres geben, n doppeltes SET wäre ja recht angenehm, nur find ich da irgendwie nix

Verfasst: 18.06.2004 13:33
von Dennis63
Das vertauschen geht auch mit einer SQL-Abfrage...

Erstelle TEST-Tabelle

Code: Alles auswählen

CREATE TABLE `test` (
  `Id` int(6) unsigned NOT NULL auto_increment,
  `posi` int(4) default NULL,
  PRIMARY KEY  (`Id`)
) TYPE=MyISAM;

INSERT INTO `test` VALUES (1,1);
INSERT INTO `test` VALUES (2,2);
INSERT INTO `test` VALUES (3,3);
INSERT INTO `test` VALUES (4,4);
INSERT INTO `test` VALUES (5,5);
Vertausche 2 mit 3

Code: Alles auswählen

update test a, test b
SET a.posi = 2 , b.posi = 3
WHERE a.posi = 3 AND b.posi = 2
Grüße
Dennis

Verfasst: 18.06.2004 15:38
von k-5
ah danke ..

genau das meinte ich mit "nem doppelten set" ;) ..

Verfasst: 22.07.2004 18:31
von k-5
hm .. gibts dafür auch ne lösung die mit mysql 3.23 läuft ? ..