Hello,
LAST_INSERT_ID() sollte Dein Problem lösen.
Warum?
Wenn es sich um MySql handelt und die ID ein Autoincrement hat, sollte eher "....max(id)..." helfen.Nein. max(ID) selektiert die zu diesem Zeitpunkt maximale ID. Das kann aber (da ja parallel mehrere Einträge gemacht werden können) eine ganz ander ID sein, als dem in diesem Skript gemachten Eintrag zugeordnet wurde.
LAST_INSERT_ID() gibt es sowohl als SQL-Befehl, als auch als PHP-Befehl, und damit erhält man GARANTIERT die durch die vorhergehende INSERT-Operation erzeugte neue ID. Diese Zuordnung orientiert sich an der Datenbank-Connection und wird durch andere Operationen paralleler Skripte nicht beeinflusst. Damit bist du in jedem Falle SICHER, dass deine ID tatsächlich dem gerade eben erzeugten Datensatz entspricht.
Man erhält Sie uach erst NACH dem Insert zurück. Hier geistert häufig die Vorstellung herum, dass man die neue ID (bzw. die bisher letzte) bereits VOR dem Insert bekommen könnte. Das ist aber aus Gründen der Serialisierung konkurrierender Prozesse nicht möglich. Deutlich wird das, wenn man sich unseren Experimentierbaukasten http://forum.de.selfhtml.org/archiv/2004/5/82138/ mal aufmerksam anschaut. Da kann man sozusagen "reinschauen" in die Datenbankfunktionsweise.
Irgendwann wird er wohl auch mal fortgeführt werden.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau