Hallo,
Folgendes; ich habe eine Tabelle mit Einträgen deren Reihenfolge beliebig festgelegt werden kann. Klappt auch soweit ganz gut, nur wie änder ich die Positionen wenn mitten drin ein Eintrag gelöscht wird?
Tabellenaufbau:
id |name |pos
1 |Eintrag 1 |3
2 |Eintrag 2 |2
3 |Eintrag 3 |4
4 |Eintrag 4 |1
Lösche ich jetzt id=2 bleiben die Positionen 1,3 und 4 übrig. Eigentlich bräuchte ich jetzt aber 1 bis 3 in der Tabelle. Das Einzige was mir jetzt dazu einfällt, ist die Tabelle auszulesen und in einer Schleife jeweils ein Update auszuführen... sind dann 1*Delete und 3*Update. Wären das jetzt 20,30 und mehr Einträge kämen natürlich entsprechend viele UPDATES zustande. Geht das auch in nur 1*DELETE und 1*UPDATE? :uhm:
Dachte da an so etwas wie:
UPDATE table SET pos=pos+1 ORDER BY pos
Wobei pos bei 1 starten sollte. Hat da einer ein Tipp?
Danke schonmal
Folgendes; ich habe eine Tabelle mit Einträgen deren Reihenfolge beliebig festgelegt werden kann. Klappt auch soweit ganz gut, nur wie änder ich die Positionen wenn mitten drin ein Eintrag gelöscht wird?
Tabellenaufbau:
id |name |pos
1 |Eintrag 1 |3
2 |Eintrag 2 |2
3 |Eintrag 3 |4
4 |Eintrag 4 |1
Lösche ich jetzt id=2 bleiben die Positionen 1,3 und 4 übrig. Eigentlich bräuchte ich jetzt aber 1 bis 3 in der Tabelle. Das Einzige was mir jetzt dazu einfällt, ist die Tabelle auszulesen und in einer Schleife jeweils ein Update auszuführen... sind dann 1*Delete und 3*Update. Wären das jetzt 20,30 und mehr Einträge kämen natürlich entsprechend viele UPDATES zustande. Geht das auch in nur 1*DELETE und 1*UPDATE? :uhm:
Dachte da an so etwas wie:
UPDATE table SET pos=pos+1 ORDER BY pos
Wobei pos bei 1 starten sollte. Hat da einer ein Tipp?
Danke schonmal