MySQL Abfragen einer gerade erstellten Zeile
jb 21.08.2006 - 15:29 820 4
jb
Here to stay
|
Habe folgendes Problem zu lösen: Es wird eine neue Zeile in eine Tabelle geschrieben, der Index wird dabei automatisch erstellt (also nicht von mir eingefügt). Nun möchte ich den Index aber haben, weil ich ihn zur Weiterverarbeitung brauche. Konkret geht es um ein kleines Content-Management System, hier wird der Inhalt eingefügt und ich brauche die Spalte "id", um sie für die Verlinkung in einem Menü in der dortigen Tabelle einzufügen INSERT INTO inhalt (titel, text, view, pics, datum) VALUES ('$titel', '$text', '$view', '$pics', '$datum') Die Spalte, deren Wert ich brauche heißt id (die auch als Primärindex verwendet wird und Unique ist). Wie kann ich das elegant lösen, ohne eine Abfrage machen zu müssen, die alle Felder nach der gerade eingefügten Zeile absucht? Die Wahrscheinlichkeit, 2 genau gleiche Zeilen in der Tabelle zu haben ist zwar fast 0, nur theoretisch wäre es möglich. Genau diesen Fall möchte ich ausschließen. Eine Idee von mir wäre es, den höchsten Wert des Feldes "id" auszulesen und dann die Zeile mit einem um 1 höheren Wert in die Tabelle zu schreiben, aber das ist mir auch nicht elegant genug, das muß irgendwie anders (einfacher und/oder besser gehen.
Bearbeitet von jb am 21.08.2006, 18:24
|
Spikx
My Little Pwny
|
|
Facetious
Addicted
|
|
jb
Here to stay
|
Hmm habs mal versucht, aber dürfte irgendwie nicht hinhauen. In der MySQL Referenz hab ich ein Beispiel gefunden, daß mich aber auch nicht schlauer gemacht hat. Wie bring ich das nun mit PHP raus, ich weiß es muß anfängermäßig klingen aber ich steh momentan komplett auf der Leitung. Vielleicht entdeckt jemand hier drin einen Fehler (habs auch schon ohne () versucht). $result=mysql_query ("select last_insert_id()", $db); Muß ich vielleicht nachher noch wie bei jeder anderen Abfrage einen Wert aus dem Result holen (das ja normalerweise nur so ne Result-ID oder was in der Art ist)?
|
jb
Here to stay
|
|