PHP und MAX id bzw. LAST INSERT ID
Hallo,
ich benötige die Letzte ID von der Tabelle xy. Leider kann ich LAST_INSERT_ID nicht verwenden, weil kein INSERT Befehl vorher stattfindet.
ID ist auto_increment.
Mit MAX(id) habe ich ebenfalls ein Problem, denn wenn ich einen Datensatz lösche z.B. Datensatz 4 dann sollte er eigentlich bei MAX(id) die 3 ausgeben + plus 1 = 4. Leider ist der auto_increment auf 5 gesetzt...
Nun meine Frage: gibt es eine Möglichkeit den auto_increment wert auszugeben?
ich benötige die Letzte ID von der Tabelle xy. Leider kann ich LAST_INSERT_ID nicht verwenden, weil kein INSERT Befehl vorher stattfindet.
ID ist auto_increment.
Mit MAX(id) habe ich ebenfalls ein Problem, denn wenn ich einen Datensatz lösche z.B. Datensatz 4 dann sollte er eigentlich bei MAX(id) die 3 ausgeben + plus 1 = 4. Leider ist der auto_increment auf 5 gesetzt...
Nun meine Frage: gibt es eine Möglichkeit den auto_increment wert auszugeben?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 296960
Url: https://administrator.de/contentid/296960
Ausgedruckt am: 26.11.2024 um 03:11 Uhr
8 Kommentare
Neuester Kommentar
Du kannst dir mit
SHOW TABLE STATUS LIKE `Name_Der_Tabelle`
die Eigenschaften der Tabelle ausgeben, wo unter anderem auch der auto_increment angegeben ist.
Aber vorsicht: Das ist natürlich nicht transaktionssicher - wofür brauchst du den Wert aus auto_increment denn, vielleicht gibt es da bessere Möglichkeiten?
SHOW TABLE STATUS LIKE `Name_Der_Tabelle`
die Eigenschaften der Tabelle ausgeben, wo unter anderem auch der auto_increment angegeben ist.
Aber vorsicht: Das ist natürlich nicht transaktionssicher - wofür brauchst du den Wert aus auto_increment denn, vielleicht gibt es da bessere Möglichkeiten?
Das habe ich vorhin offenbar falsch verstanden...
Dafür wäre es vermutlich am einfachsten, wenn du dir z.B. per PHP uniqid() eine Unique-ID erzeugen lässt, diese als zusätzliches Feld mit in die Tabelle schreibst und die generierte Unique-ID an dein Javascript gibst. Dann kannst du statt über die ID über die UniqueID per XMLHttp anfragen.
Auto_Increment will man normalerweise haben - es sei denn du kannst andere eindeutige Primärschlüssel erzeugen, aber Auto-Increment ist da am einfachsten
Dafür wäre es vermutlich am einfachsten, wenn du dir z.B. per PHP uniqid() eine Unique-ID erzeugen lässt, diese als zusätzliches Feld mit in die Tabelle schreibst und die generierte Unique-ID an dein Javascript gibst. Dann kannst du statt über die ID über die UniqueID per XMLHttp anfragen.
Auto_Increment will man normalerweise haben - es sei denn du kannst andere eindeutige Primärschlüssel erzeugen, aber Auto-Increment ist da am einfachsten
Hallo,
dann ist Dein Ablauf schlicht falsch.
Selbst wenn Du diese ID sicher auslesen kannst, könnte ein 2. und 3. Request vor Deinem Insert, aber nach Deiner ID ermittlung, ausgeführt werden.
Also bleiben Dir nur 2. Wege.
1. Erst den Insert, ID merken und weiterverwenden
2. Die LG geschrieben hat eine unique ID erstellen und diese als "zwei-Schlüssel" verwenden.
Eigentlich sollte es ja so sein.
Du erstellt die Bestelltung, bekommst die ID und schreibst diese in in die Session.
Danach kommt zur Bestellung die einzelnen Positionen welche diese ID verwenden.
Stefan
dann ist Dein Ablauf schlicht falsch.
Selbst wenn Du diese ID sicher auslesen kannst, könnte ein 2. und 3. Request vor Deinem Insert, aber nach Deiner ID ermittlung, ausgeführt werden.
Also bleiben Dir nur 2. Wege.
1. Erst den Insert, ID merken und weiterverwenden
2. Die LG geschrieben hat eine unique ID erstellen und diese als "zwei-Schlüssel" verwenden.
Eigentlich sollte es ja so sein.
Du erstellt die Bestelltung, bekommst die ID und schreibst diese in in die Session.
Danach kommt zur Bestellung die einzelnen Positionen welche diese ID verwenden.
Stefan