Mailinglisten-Archive |
Sebastian Mendel schrieb:
> Lutz Zetzsche wrote:
>
>>Hi Jörn,
>>
>>Joern Grube schrieb:
>>
>>>Ich generiere eine neue Kundennummer (unique in der Datenbank) aus einem
>>>Kürzel, dem Datum und einem fortlaufenden Wert. Dazu hole ich mir die
>>>letzte Kundennummer aus der Datenbank, zerlege die, zähle eins dazu und
>>>setze sie wieder zusammen:
>>>
>>>$kdnrLast = explode("-", $row['all_ident_user']);
>>>$kdnrLast = $kdnrLast[4];
>>>$kdnrLast = $kdnrLast + 1;
>>>$kdnrDat = date("Y-m-d");
>>>$kuerzel = "MA";
>>>$kdnr = $kuerzel."-".$kdnrDat."-".$kdnrLast;
>>>
>>>Dann schreib ich das mit allem anderen (Pw, Id) in die Datenbank. Das
>>>funktioniert bis zehn, danach kommt folgendes:
>>>
>>>Antwort:
>>>Duplicate entry 'MA-2005-07-05-10' for key 2
>>>Fehlercode:
>>>1062
>>>
>>>Das es das Ding mit zehn hinten schon gibt, ist klar, aber er soll doch
>>>eines addieren. Warum macht er das bis zehn und dann nicht mehr?
>>>Die Spalte ist vom Typ
>>>varchar(30) NOT NULL default ''
>>>An der Länge kann es also auch nicht liegen. Ich hab nicht den mindesten
>>>Schimmer, warum das so ist. Jemand von Euch vielleicht?
>>
>>steht denn auch in $row der zuletzt eingefügte Datensatz?
>
>
> genau, bzw wie holst du denn den letzten Datensatz??
Mit einem ganz normalen SELECT ...
.....
Auf Hinterkopf hau ...
Das wars, ich hab
ORDER BY all_ident_user DESC
gemacht, da ist dann natürlich der Datensatz mit 9 hinten der letzte.
Hab jetzt
ORDER BY all_ident_id DESC
gemacht und jetzt funzt es.
Manchmal ist man aber auch wie vernagelt :) Sorry und besten Dank.
MfG Jörn Grube
php::bar PHP Wiki - Listenarchive