MySQL: Update von mehreren Sätzen, deren Anzahl variabel ist
Chriss
- perl
0 BerndG0 Chriss0 Chriss @ BerndG
Hallo Comunity!
Ich hab da ein schweres Problem!
Ich haben eine MySQL - DB mit einer Tabelle die so aussieht:
ID |Pos |Text
---------------------
6 |1 |Test
22 |2 |ABC
1 |3 |xyz
4 |4 |test
9 |5 |cba
31 |6 |wef
...
ID ist Primary key. Nach Pos wird absteigend sortiert.
Lösche ich jetzt den Satz mit der Positionsnummer 3 muss ich die Positionsnummern für die Sätze mit den ID's 4 und 9 aktualisieren, sodas der Satz mit der ID 4 die Positionsnummer 3 und der mit ID 9 die Positionsnummer 4 usw. erhält. Die Positionsnummern sind wichtig für die spätere Sortierung auf der Seite. Ich kann dazu nicht die ID verwenden, da sich die Position einzelner Sätze ändern kann.
Da ich aber erst seit zwei Wochen mit Perl und MySQL arbeite habe ich keinen Plan, wie ich das realisieren kann. Hab schon einiges versucht, aber mir fehlt einfach etwas Erfahrung und Wissen. Ich muss das Skript allerdings schnellst möglich geschrieben haben.
Der Zugriff auf die Datenbank besteht über DBI und funktioniert.
Wenn euch dazu irgendwas einfällt wär ich wirklich sehr dankbar!
MfG - Chriss
Hallo Comunity!
Ich hab da ein schweres Problem!Ich haben eine MySQL - DB mit einer Tabelle die so aussieht:
ID |Pos |Text
6 |1 |Test
22 |2 |ABC
1 |3 |xyz
4 |4 |test
9 |5 |cba
31 |6 |wef
...ID ist Primary key. Nach Pos wird absteigend sortiert.
Lösche ich jetzt den Satz mit der Positionsnummer 3 muss ich die Positionsnummern für die Sätze mit den ID's 4 und 9 aktualisieren, sodas der Satz mit der ID 4 die Positionsnummer 3 und der mit ID 9 die Positionsnummer 4 usw. erhält. Die Positionsnummern sind wichtig für die spätere Sortierung auf der Seite. Ich kann dazu nicht die ID verwenden, da sich die Position einzelner Sätze ändern kann.
Da ich aber erst seit zwei Wochen mit Perl und MySQL arbeite habe ich keinen Plan, wie ich das realisieren kann. Hab schon einiges versucht, aber mir fehlt einfach etwas Erfahrung und Wissen. Ich muss das Skript allerdings schnellst möglich geschrieben haben.
Der Zugriff auf die Datenbank besteht über DBI und funktioniert.
Wenn euch dazu irgendwas einfällt wär ich wirklich sehr dankbar!
MfG - Chriss
Hallo,
probier mal
UPDATE tabelle
SET pos = pos -1
WHERE pos > 'poswert_der_gelöscht_wurde'
Gruss
Bernd
Hallo Bernd,
war ne gute Idee... aber die geht nicht. Er bringt zwar keinen Fehler, dekrementiert aber auch nichts...
Servus Christian
Danke Bernd!
Hat doch geklappt... wer lesen kann ist klar im Vorteil *g*.
Ist schon klar, dass es nicht funktioniert, wenn man den statementhandle nich initialisiert... aber so bin ich halt!
Gruß Christian