• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP, MySQL Reihenfolge sortieren.

funas

Neues Mitglied
Hallo zusammen,

bei meinem Script gibt es die Möglichkeit Kategorien anzulegen.
Diese sind, in der Datenbank, einfach mit einer ID gekennzeichnet und haben zusätzlich ein Feld Position.

Nun möchte ich, dass der User die Reihenfolge der Ausgabe beeinflussen kann.

Beim Anlegen einer Kategorie wird im Moment die Position des letzten Eintrages ausgelesen, ++ gerechnet und abgespeichert.
Funktioniert auch soweit.

Wenn ich jetzt aber der letzten Kategorie die Position 1. geben will, müsste ich jeden nachfolgenden Eintrag auslesen, editieren und abspeichern.

Jetzt wollte ich fragen, ob es da nicht eine unkomplizierte Lösung gibt.

Hoffe, man versteht mich und kann mir ein paar Tipps geben.

Gruß Funas
 
Willkommen im Forum.

Ich glaube nicht. Aber so kompliziert ist das nun auch nicht. Das ist eine Abfrage für das Auslesen, dann ein wenig Rechnen, dann eine Abfrage für die Updates.

Du könntest sonst höchstens keine Gewichtung speichern, sondern einen Verweis auf die ID des Vorgängerelements.

- Nested Sets

Edit: ↓↓↓ @threadi: Oh, stimmt auch wieder.
 
Zuletzt bearbeitet:
Ich sehe hier mehrere Fragen die nicht unbedingt etwas miteinander zu tun haben.

Nun möchte ich, dass der User die Reihenfolge der Ausgabe beeinflussen kann.

Dafür musst Du erstmal festlegen was für eine Reihenfolge (Position oder anderes Merkmal) und ob und wenn ja wo und wie diese pro Nutzer gespeichert werden kann. Die Aussage alleine ist noch zu wenig um hier etwas dazu sagen zu können.

Wenn ich jetzt aber der letzten Kategorie die Position 1. geben will, müsste ich jeden nachfolgenden Eintrag auslesen, editieren und abspeichern.

Nö, ginge imho auch einfacher:
Code:
UPDATE tabelle SET position = position + 1

Das ausführen bevor Du die neue Kategorie einträgst bzw. positionierst. So musst Du nicht jeden Datensatz einzeln anfassen.
 
Zurück
Oben