in einer db zwischen 2 id's eine hinzufügen.

LrIuNlUzX

Mitglied
moinsen.

ich habe folgendes problem zu lösen.
ich habe eine db in der gibt es eine spalte, welche die position angibt, an die der inhalt bei der ausgabe soll.
d.h. als erstes erscheit die zeile an der pos den wert 1 hat, darauf folg die mit dem wert 2... usw.

jetzt mein probem: wenn ich jetzt eine neu zeile hinzufügen will, aber diese nicht an das end der tabelle hängen möchte, sondern z.b. an pos 5... wenn jetzt die tabelle schon 10 einträge hat, heißt es jetzt das die neue zeile den pos wert 5 bekommt und alle zeilen die den pos wert >= 5 haben müßten um 1 erhöt werden.

kann ich das lösen ohne die ganzen daten aus der tabelle zu hohen, neu sortieren und dann wieder zu speichern.

ich hoffe jemand hat diese problematik schon einmal behandelt, oder weiß wie ich das lösen kann.

schon mal danke...
 
Hi

Also jetzt rein mal von der mathematischen Seite betrachtet würde ich das Problem so lösen: Nimm für die ID double... dann nimmst du für die fünfte (bzw. sechste) ID eben einfach 5.5. Sollte nochmal eine kommen, wird es halt 5.25 bzw. 5.75 usw. Ich hoffe, du hast das Prinzip verstanden - immer halbieren.
 
jepp,
die idee hatt ich auch schon. ist meiner meinung nach aber nicht sauber genug.
ich möchte das eindeutig haben, da ich die pos id auch dazu benutzen will die datensätze zu holen und auch einfach umstuckturieren will, d.h. wenn ich jetzt einen datensatz beabeite und jetzt will das er an ne andere pos soll sag er mir erst mal seine jetzig, und dann will ich im über eine neue angabe seine neue pos angeben, was ich aber nicht könnte wenn ich kommazahlen hätte , außer ich rechner wieder rum .

dafür mußte es doch eigentlich ein elegantere lösung geben. das ist ja nen prob was mit sicherheit öffter corkommt.
 
ich bin's mal wieder... ;)

ich habe das problem gelöst, ist eigentlich ganz einafch ... wenn man weiß wie.

flas es einen interesiert:

erst lese ich den komplettenn inhalt der tabell aus speicher ihn in ein array, wobei die positionsangabe das feld des arrays ist, will ich jetzt eine neuen eintarg dazwischen setzten benutze ich einfach die splice funktion dafür...
und dann wird das array einfach der reinfilgenach, und neu sortiert zurück in die tabelle geladen. ;)

wenn einer eine bessere lösung weiß .... kann er's mir ja sagen

cYa
 

Neue Beiträge

Zurück