ID Problem...

S

sunpix

Hi all

Ich habe nun selber ein Datenbankbasiertes Guestbook gecodet. Es funktioniert im Grunde wunderbar, bis auf ein kleines Problem.

Ich habe eine Administration eingebaut, womit ich blöde Beiträge löschen kann. Diese werden auch gelöscht. Das Problem ist nur, dass beim nächsten eintrag nicht die ID's upgedated werden. Beispiel:

Ich habe 3 Beiträge.

1
2
3

Ich habe nun Beitrag 2 gelöscht. Jetzt steht aber.

1
3

Ich möchte aber, dass die ID's neu sortiert werden, damit nachher

1
2

steht.

Danke im Voraus.

Hier mein Guestbook
GUESTBOOK ANSCHAUEN
 
hmm .. soweit ich weiß gibt es keine Funktion, die sowas macht.

Ein Ähnliches Verhalten hast Du übrigens auch wenn Du bei

1
2
3

die 3 löschst, dann ist der nächste Eintrag automatisch die 4 !!!

Das einzige was Du machen kannst ist, dies als "Gegeben" hinzunehmen (für die Sortierung machts ja nix) und dann die Anzeige der Eintragsnummern in dem Script, welches die Einträge anzeigt, zu "errechnen".

Gruß
Dunsti
 
Hallo,

nur mal so eine Ideee .... ob sie realisierbar ist oder nicht - keine Ahnung.

Man könnte doch in die Admin-Maske eine Funktion einbauen, die aufgerufen wird, wenn ein Beitrag gelöscht wurde, und dann ein temporäres Abbild der Datenbank erstellen, $StartID auf 1 setzen und dann Stück für Stück jeden Datensatz via SQL (Update .... where ...)zurück in die eigentlich DB schreiben.
Der Nachteil wird wohl sein, dass eine enorme Rechenzeit bei großen Datenbanken gebraucht wird.
 
hi,
wieso so schwer?

also die ID wird ja autoincrement, d.h. sie steigt immer +1 an, die id ist unique, also einzigartig, was erst das auslesen ermöglicht, wenn du aber in deinem gb die einzelnen ids benutzts also anzeigst, (sieht ******e aus, wenn da 1,2,6,7 steht..) naja einfach ne schleife reinpacken, die immer +1 erhöht bis ende :). Die ID ansich kannst du nicht verändern, du kannst aber sonst eine extra id machen, natürlich anders benennen und dort eine funktion rein, die +1 erhöht. :) naja is alles nur ... ka.
 
@ArneE: das wird nicht funktionieren, da Du ein auto_increment-Feld meines Wissens nicht updaten kannst.

@TTrek: genau so hatte ich es gemeint. Die Zahl, die angezeigt wird per Skript berechnen.

Gruß
Dunsti
 
Hallo,

@Dunsti: Stimmt, ein Auto-Increment kann nicht verändert, sondern höchstens gelöscht und neu angelegt werden. ;)
Diese netten Spielchen mit Auto_Increment habe ich satt. Mit der Zeit wird's nervig, wenn man ständig ein Feld aus einer Interbase-DB per SQL-Befehl (ALTER ...) rausschmeißen und anschließend neu anlegen muss. Ich bin dazu übergegangen, als Typ Integer (Numerische Zahl) für die ID zu nehmen und dann einfach die ID des vorherigen Datensatzes auslesen und eins inkrementieren ...
 
Hey vielen Dank Leute für die Antworten. Die haben mir sehr weitergeholfen. Ich werde mal die Idee von Dunsti und TTreck unter die Lupe nehmen. Wird wohl ein bisschen dauern, da ich erst mit PHP angefangen habe..

Danke
 
Zurück