Mailinglisten-Archive |
Hallo! Vielleicht hilft dir folgendes: SET @v=0; UPDATE tag_expert SET sort_no = IF(@v := @v + 1, @v, @v) ORDER BY sort_no oder so aehnlich... g, ilja Andreas Kuzma schrieb: >Hallo Leute! > >Ich habe ein Menüsystem (PHP/MySQL), dessen Menüpunke in einem >MySQL-Table gespeichert sind. Die Reihenfolge ist durch ein eigenes Feld >definiert, dort sind die Menüpunkte in Zehnerschritten durchnummeriert. > > title sort_no > Menüpunkt 1 10 > Menüpunkt 2 20 > Menüpunkt 3 30 > >Um einen Punkt frei rauf- und runter schieben zu können, hab ich mir >folgendes ausgedacht: Je nachdem, wie weit der Menüpunkt verschoben >werden soll ändere ich den sort_no-Wert um 15, 25, 35 ... und >"re-numeriere" die Spalte danach, damit die Differenzen wieder 10 sind. > > Beispiel: Verschieben des Menüpunktes 3 an die erste Stelle > durch Abziehen von 25: > title sort_no > Menüpunkt 3 5 > Menüpunkt 1 10 > Menüpunkt 2 20 > > Anschließendes Renumerieren: > title sort_no > Menüpunkt 3 10 > Menüpunkt 1 20 > Menüpunkt 2 30 > >So in etwa hab ich mir das vorgestellt. Allerdings weiß ich nicht wie >ich dieses "re-sorting" bewerkstelligen soll. > >Bislang bringe ich es nur zusammen einen Menüpunkt jeweils um einen >einzigen Schritt rauf oder runterzuschieben, in dem ich die >sort_no-Werte austausche. > >Weiß jemand von Euch Rat? > >Vielen Dank schonmal im Vorraus, >Andi > > > -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive