norbert: Tabellenzeile einfügen

Hallo,

ich habe eine Tabelle, die

Der User kann eine neue Tabelle erzeugen,
Zeilen hinten anhängen, Zeilen löschen, einschieben und innerhalb der Tabelle
nach oben und unten verschieben können.

Die Tabelle wird in einer mysql-Tabelle gespeichert.

Wie kriege ich das am Besten hin?
Mit einer Sortier-ID?
Aber dann muss ich ja jedesmal wenn sich in der Reihenfolge was ändert, die gesamte Datenbanktabelle ändern.

Was wäre die einfachste Lösung?

Schon mal vielen Dank
Gruß Norbert

  1. Hi,

    Wie kriege ich das am Besten hin?
    Mit einer Sortier-ID?
    Aber dann muss ich ja jedesmal wenn sich in der Reihenfolge was ändert, die gesamte Datenbanktabelle ändern.

    So dramatisch ist es ja nicht - du musst ja nur bei allen in der Sortierung nachfolgenden bzw. vorhergehenden Datensätzen den Sortierwert vom eins erhöhen bzw. eins verringern. Das lässt sich mit einem UPDATE-Statement hinbekommen.

    (Du kannst natürlich auch so vorgehen, wie man früher bspw. in BASIC mit den Zeilennummern umgegangen ist - in 10er- oder 100er-Schritten, so dass man dazwischen immer noch Platz zum Einfügen einer Zeile hatte, falls man was vergessen hatte.
    Wenn der Datensatz mit Sortiertwert 500 jetzt zwischen die beiden mit 200 und 300 einsortiert werden soll - dann setzt du seinen Sortierwert auf 250.
    Das mag zunächst mal nach weniger Aufwand klingen, ist letztendlich aber sicher mehr. Zum einen musst du erst mal die "Mitte" zwischen zwei Werten bestimmen - und dann auch noch auf Kollisionen achten, bei denen dann eine Neuorganisation der gesamten Datenmenge anfällt.)

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
  2. Hallo,

    ich habe eine Tabelle, die

    Der User kann eine neue Tabelle erzeugen,
    Zeilen hinten anhängen, Zeilen löschen, einschieben und innerhalb der Tabelle
    nach oben und unten verschieben können.

    Nicht schlecht. Woraus stammt denn die Anforderung?

    Die Tabelle wird in einer mysql-Tabelle gespeichert.

    Wie kriege ich das am Besten hin?
    Mit einer Sortier-ID?

    Einschieben und dergleichen schaffst Du doch erstmal mit Javascript. Und dann vermutlich mit einer Sortier-ID. Wie sonst soll der Server die Reihenfolge kennen, wenn du sie ihm nicht jedesmal aufs Neue verrätst und sie irgendwo notierst, wenn sie sich geändert hat?

    Gruß

    jobo