[MySQL] ID von vorne beginnend

cille

Erfahrenes Mitglied
Hi ho,
wenn ich z.B.: ein Eintrag lösche, dann geht das neu eingetragene bei mir trotzdem da weiter wo es nicht soll.

z.B:

Insgesamt: 24 Einträge
Lösche: 14. Eintrag
IDs bleiben stehen: false (1,2,3,4,5,6,7,8,9,10,11,12,13, , 15,16,17, usw....)
IDs müssen nachrücken: true (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16usw...)

wie geht das?
 
Also so eine Umnummerierung wirst Du wohl selbst vornehmen muessen.
Was stoert Dich denn daran, dass da Luecken entstehen?
 
Na z.B.: wenn sich User registrieren, trotzdem raufgezählt werden obwohl da zwischen noch platz ist,

oder z.B.: die news, wenn ich 10 geschrieben habe 3 lösche und dann wieder ne news schreibe, dann steht da, dass 11 News Online sind, obwohl nur 8 in der Datenbank sind,
das ist doof,

noch ein Beispiel:
Ich schreibe News und dann lösch ich mal eine schnell noch.
Die User müssen ja dann auch denken, wenn da Newstitel stehen die so aussehen:

04: Bla Blub
02: Tastatur für blinde
01: Neue maus draußen

das darf aber nicht sein?

Es muss doch was geben womit man dies ändern kann?
 
Hallo,

die Anzahl der Einträge einer Tabelle ermittelt man mit SELECT COUNT(*) FROM tabelle. Wenn du die Einträge bei der Ausgabe durchnummerieren willst, kannst du dafür einen entsprechenden Zähler verwenden.

Grüße,
Matthias
 
cille hat gesagt.:
oder z.B.: die news, wenn ich 10 geschrieben habe 3 lösche und dann wieder ne news schreibe, dann steht da, dass 11 News Online sind, obwohl nur 8 in der Datenbank sind,
Mathe ist nicht Deine Staerke, was? ;)
Also es darf da zu keinem Zeitpunkt angezeigt werden, dass 11 News online sind, und wenn Du 10 schreibst und 3 loescht sollten 7 uebrig bleiben, und nicht 8. :)

Anhand der ID sollte man auch keine Zaehlung machen, wofuer gibt es denn mysql_num_rows() oder den MySQL-Befehl COUNT?

Die ID der News muss doch garnicht ausgegeben werden, die ID wird immer nur im Hintergrud genutzt. Falls Du eine Nummerierung bei der Ausgabe willst dann erstell diese doch bei der Ausgabe, ist doch kein Problem.

Mir faellt im Moment nur ein Ansatz ein die Luecken zu entfernen. Es mag einen anderen geben, aber dafuer muesste man dann wohl MySQL-Befehle nutzen um die ich bisher herumgekommen bin.
  1. Eine Tabelle im Speicher erstellen.
  2. Alle Daten rueber schaufeln, dabei halt automatisch eine ID vergeben lassen sodass die Daten wieder durchnummeriert sind.
  3. Die Tabelle mit den alten Daten leeren (mit TRUNCATE, dabei wird auch der ID-Counter zurueckgesetzt).
  4. Die Daten aus der Speicher-Tabelle wieder in die "normale" Tabelle uebertragen.
  5. Die Speicher-Tabelle loeschen.
Wie Du siehst ist das ganze "ein wenig" umstaendlich, und wie gesagt, meiner Meinung nach vollkommen ueberfluessig.
 
habe SELECT COUNT() mal dazwischen gehangen ist aber nichts passiert,
könntet Ihr mir ein Beispiel schnell schreiben.

DANKE

mfg,
cille
 
das ist nicht das was ich suche, die Datenbank soll ja von alleine alles ordnen.

Trotzdem Danke
 
Ich denke nicht, dass das moeglich ist. Ist aber halt auch nicht noetig wenn man vernuenftig da rangeht. Niemanden stoert es wenn im Hintergrund die IDs nicht lueckenlos verteilt sind, da kriegt in der Regel kein Mensch was von mit.
Also wenn Du, aus welchen Gruenden auch immer, sowas wirklich brauchst, dann wirst Du das wohl selbst machen muessen.
 

Neue Beiträge

Zurück