URL: https://www.overclockers.at/coding-stuff/mysql_id_des_bearbeiteten_datensatzes_rausfinden_150512/page_1 - zur Vollversion wechseln!
Gibt es eine Möglichkeit, nach einem UPDATE die ID des Datensatzes rauszufinden, der bearbeitet wurde? Wenn ich z.B. eine Tabelle habe, mit dem id-Feld "user_id" und ich einfach mache:
dann hab ich ja keine Ahnung, welche user_id gerade bearbeitet wurde.Code: PHPUPDATE users SET user_rights = 1
Aber es kann ja sein, dass nach dem gerade bearbeiteten Datensatz eine anderer Datensatz steht.Code: PHPSELECT * FROM blabla ORDER BY id DESC LIMIT 1
Zitat von tomstigWenn ich z.B. eine Tabelle habe, mit dem id-Feld "user_id" und ich einfach mache:dann hab ich ja keine Ahnung, welche user_id gerade bearbeitet wurde.Code: PHPUPDATE users SET user_rights = 1
Wie machst du denn das Update auf die Tabelle ohne den Schlüssel zu kennen?
Was genau hast du vor?
Vl. hilft dir das: http://de.php.net/manual/de/function.mysql-info.php
Zitat von thatdoch ... alle.
und wenn du ein where hast, kannst du ja einfach ein select mit dem selben where machen und hast die id.
nicht ganz...
wenn du nämlich genau die spalte änderst die du im where abfragst, dann hast irgendwie ein Problem
nicht wenn ich das select vorher mache hab ja nicht geschrieben, wann er es macht *g*
wobei dann ist eben die frage, will er die neue oder die alte id.
Bei einem UPDATE ändert sich die id (afaik(!)) sowieso nicht, d.h. es gibt keine "alte" oder "neue" id.
da gibts einen befehl afaik,
http://de.php.net/manual/de/functio...l-insert-id.php
Zitat von Römida gibts einen befehl afaik,
http://de.php.net/manual/de/functio...l-insert-id.php
Zitat von jivesBei einem UPDATE ändert sich die id (afaik(!)) sowieso nicht, d.h. es gibt keine "alte" oder "neue" id.
Zitat von kleinerChemikernormalerweise nicht. ich kann aber auch die id ändern, wenn ichs will.
Wofür ich das gebraucht hätte, war folgendes:
Da ich bei einer Änderung relativ viele Daten updaten muss, hab ich einfach die alten gelöscht und einfach die geänderten Daten eingefügt (sprich, die Einträge haben eine neue ID bekommen). In einem anderen Table hab ich aber genau diese IDs gespeichert. Wenn ich nun die Daten geändert habe, dann ist die Verbindung von dem einen Table zu dem anderen verloren gegangen (logisch: wenn ich die alten Einträge lösche und stattdessen ganz neue einfüge). Jetzt hatte ich die Idee, dass von dem table, von dem aus auf den anderen verlinkt wird, einfach die IDs aktualisiere. Und dafür hätte ich einen Befehl gebraucht, der mir die ID gibt, von dem Eintrag der mit UPDATE bearbeitet wird.
Weil wenn ich z.B. folgendes mache
dann weiß ich ja nicht, welche ID gerade bearbeitet wird...Code: PHPUPDATE table SET user_rights = 1 WHERE user_rights = 0
oder du machst einfach ein SELECT id FROM table WHERE user_rights = 0 vorher, dann hast du auch die id's.
@römi: ist im grunde ja eh nur ne theoretische betrachtung. und um dem die krone aufzusetzen, ich weiß es nicht, wenn ich LAST_INSERT_ID()+1 oder gar RAND() verwende *ggg* aber das geht dann schon bischen gar weit
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025