PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Eintrag eines Datensatzes in die DB. Wie bekomme ich die ID raus? (http://www.selfphp.de/forum/showthread.php?t=9653)

BenjaminG 31.01.2005 16:09:05

Eintrag eines Datensatzes in die DB. Wie bekomme ich die ID raus?
 
ich füge einen Datensatz in einen Datenbank ein. Dieser muss nach dem Beenden der Verbindung nochmal korregiert werden. Wie bekomme ich jetzt die ID raus, welche der Datensatz hat, der eingefügt wird?

In der Tabelle gibt es das Feld ID.

gibt es da eine möglichkeit mit dem INSERT INTO-Befehl?

Danke für die Hilfe!

c4 31.01.2005 16:13:30

--> http://php.net/mysql_insert_id

BenjaminG 31.01.2005 16:21:58

danke so hat es funktioniert.

hoffe, dass das diesmal endlich so funktioniert wie ich das möchte.

xabbuh 31.01.2005 16:29:13

Oder du benutzt die MySQL-Funktion LAST_INSERT_ID().

BenjaminG 31.01.2005 16:43:11

was ist besser von den beiden?

ich brauche die ID des Datensatzes der eingefügt wird. Deshalb ist glaube ich der mysql_insert_id() besser oder doch nicht?

ich kann die Funktion LAST_INSERT_ID() gar nirgends finden. Gib mal eine Seite an!

c4 31.01.2005 16:44:37

Die von xabbuh() genannte Funktion gehört zu MySQL. Die von mir macht nix anderes, als diese auszuführen. Meine erspart Dir glaube ich nur Arbeit, mehr bringt das nicht.

BenjaminG 31.01.2005 17:09:09

bei der Mysql-Funktion müsste ich ja noch eine Abfrage erstellen, wenn ich dich richtig verstanden habe und bei der anderen nicht. Dann ist das mit deiner vorgeschlagenen am besten.

BenjaminG 31.01.2005 20:15:17

das funktioniert leider wieder nicht bei allen so. Da ich die Id in eine Session schreibe, aber diese wird leider wieder nicht wieder in die Datenbank geschrieben. Kann ich irgendwie den letzten Datensatz des Users rausfinden, wenn die ID des Benutzers bekannt ist?

ID ID-Benutzer Startzeit Endzeit
1 1 xxx xxx
2 1 xxx xxx
3 2 xxx xxx
4 2 xxx

Ich sollte also jetzt die ID 4 zurück bekommen und dann diesen Datensatz aktualisieren, indem in der Endzeit was drin steht.

was gibt es da für eine möglichkeit?

xabbuh 31.01.2005 20:31:17

Welche der beiden Funktionen du nutzen möchtest entscheidet sich dadurch, was wo genau du die id benötigst. Möchtest du die id in PHP weiterverwenden benutze mysql_insert_id(). Wenn du dagegen auf die zuletzt erstellte id in einer Abfrage zugreifen willst, nimmst du LAST_INSERT_ID() innerhalb des MySQL.Statements.

BenjaminG 31.01.2005 20:59:24

ich muss glaube ich noch genauer werden in meiner Beschreibung.

Ich habe ein Login-Formular mit PHP. Hier wird der Datenbankeintrag nach der Überprüfung der Zugangsdaten eingetragen. Im Hauptprogramm kann man verschiedene Sachen erstellen und nachschauen. Wenn man auf den Button ausloggen drückt, soll der Datenbankeintrag abgeändert werden, das bei dem Datensatz noch das Feld Endzeit ausgefüllt wird. Dazu brauche ich ein Abfrage, das zu bewerkstelligen. Aber irgendwie funktioniert die Abfrage mit dem Mysql-Befehl nicht. Bei verschiedenen Anwendern wird einfach kein Datensatz eingetragen. Warum?

Ich habe schon alles mögliche Probiert, aber nichts hat bis jetzt geholfen.

Bei dem Ausloggen erstelle ich den Befehl und führe den auch aus. Danach wird nicht abgefragt ob dieser erfolgreich war. Aber warum funktioniert das nicht so, wie ich das gerne hätte.

ich bin leider ziemlich ratlos. siehe auch schon Thread: http://www.selfphp.com/forum/showthr...0&goto=newpost

vielleicht hat jemand eine Idee, warum das nicht ausgeführt wird?


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:40:05 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.