Spezielle Nummerierung von Datensätzen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anlegen
ansatz
audi
auto
bekommen
benutzer
code
datenbank
datum
durchlauf
freie nummer
http
niemand
numerierung
nummer
problem
speichern
stelle
url
verwenden
-
Mir fehlt gerader der Ansatz.
Ich möchte meinen Benutzern ermöglichen, dass sie Daten speichern können. Die einzelnen Datensätze sollen dabei automatisch nummeriert werden.
Bsp. Wenn man 10 Datensätze einfügt, bekommen diese die Nummern 1-10.
soweit wäre das noch in mysql mit auto_increment möglich, aber jetzt kommt das Problem:
Wenn man z.B. die Datensätze 5 und 8 löscht, und danach weitere einfügt, sollen diese die Nummern 5, 8, 11, 12, 13, ... erhalten.
Heißt also: Immer die erste Nummer, die gerade frei ist.
Wie realisiert man das am einfachsten/ schnellsten? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
fuerderer schrieb:
dass es nicht gehen kann, liegt schon in der bedeutung des wortes 'auto' (kein audi o. so ;). es heißt 'selber/selbst'. das heißt wiederum, dass die ganze geschichte höchstselbst von mysql erledigt wird, und niemand anderer darf da reinpfuschen.
Mir fehlt gerader der Ansatz.
Ich möchte meinen Benutzern ermöglichen, dass sie Daten speichern können. Die einzelnen Datensätze sollen dabei automatisch nummeriert werden.
Bsp. Wenn man 10 Datensätze einfügt, bekommen diese die Nummern 1-10.
soweit wäre das noch in mysql mit auto_increment möglich, aber jetzt kommt das Problem:
Wenn man z.B. die Datensätze 5 und 8 löscht, und danach weitere einfügt, sollen diese die Nummern 5, 8, 11, 12, 13, ... erhalten.
Heißt also: Immer die erste Nummer, die gerade frei ist.
Wie realisiert man das am einfachsten/ schnellsten?
ein erzwingen ist zwar möglich, das wirft aber andere/weitere probleme auf, die du offensichtlich nicht erahnen kannst. tust das trotzdem, dann kannst du aber deine datenbank - wahrscheinlich - der latrine opfern.
lektüre: http://dev.mysql.com/doc/refman/5.5/en/example-auto-increment.html -
Moin,
Du könntest die Datenbank einträge nicht wirklich löschen.sondern nur leeren.
Dann beim anlegen neuer einträge erst prüfen ob welche frei sind wenn ja diese dann überschreiben.
lg
christian -
christian1603 schrieb:
gute Idee, ich werde versuchen, es so zu machen. Danke!
Moin,
Du könntest die Datenbank einträge nicht wirklich löschen.sondern nur leeren.
Dann beim anlegen neuer einträge erst prüfen ob welche frei sind wenn ja diese dann überschreiben.
lg
christian
lg fuerderer -
fabo schrieb:
Ja, die Nummerierung wird ausgegeben. Aber wie finde ich die erste freie Nummer? Gibt es dazu einen mysql-Befehl?
Je nachdem, was du vor hast, kann man das auch einfacher lösen. Wenn diese Nummerierung beispielsweise ausgegeben werden soll, kann man an Stelle der ID auch einen eigenen Zähler verwenden, der dann bei jedem Durchlauf um 1 inkrementiert wird. -
$result = mysql_query("SELECT MIN(ID) FROM User WHERE etwas=''");
spuckt dir die erste freie Nummer aus. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage