• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

nach INSERT Daten weiterverarbeiten

Bourbon

Mitglied
Hallo Leute,

also mal kurz und knapp.
Ein Eintrag wird erstellt, dieser bekommt eine ID durch AI.
Wie finde ich heraus, welche ID der Eintrag nach dem erfolgreichen Insert bekommen hat?
Ein Schlagwort reicht, denke ich :)
 
Werbung:
Werbung:
Meine Antwort war absolut korrekt und wenn du nicht zu faul wärst, in der Doku selber mal nachzusehen, hättest du dir diesen Thread sparen können!

Und nicht zu vergessen, wenn man google mit
mysql zuletzt eingefügter datensatz
füttert, bekommt man sehr leicht an die nötige Info
 
Zuletzt bearbeitet von einem Moderator:
Dazu müsste man aber genau wie Sie denken und es auch so formulieren.
Ich hatte Google mit "nach Insert Daten weiterverarbeiten" gefüttert und mich durch die Foren geklickt. Können Sie ja gerne mal machen und mir sagen, ob Sie da in irgendeinem Forum "insert_ID" finden ;)

Nicht jeder denkt und sucht wie Sie! Solange man nicht richtig in der Materie steckt, fehlen einem oft die Schlagwörter bzw. man hat das "richtige Suchen" noch nicht gelernt.

Selbiges erlebe ich oft, wenn mir jemand eine Fachfrage stellt. Ich reagiere dann aber meist eher hilfreich und weniger arrogant bzw. unterstelle Faulheit ;) Auch suchen muss gelernt sein.

Um das Beispiel hier aufzugreifen:
Um nach "zuletzt eingefügter Datensatz" zu suchen müsste man erstmal wissen, das mysql überhaupt die Information speichert, welcher Datensatz zuletzt eingefügt wurde ...
 
Werbung:
Dann mal 2 wichtige Tipps zu google:
1. Englisch
2. Stichworte

Mit der suche nach "php insert id" findet man als erstes Resultat die korrekte Dokuseite. Diese 3 Schlagworte waren ja auch in deinem Anfangspost.
 
[QUOTE="thecain, post: 364976, member: 30959"Mit der suche nach "php insert id" findet man als erstes Resultat die korrekte Dokuseite. Diese 3 Schlagworte waren ja auch in deinem Anfangspost.[/QUOTE]
Deswegen habe ich meine Nachricht nochmal um diesen Punkt erweitert.

"Um das Beispiel hier aufzugreifen:
Um nach "zuletzt eingefügter Datensatz" zu suchen müsste man erstmal wissen, das mysql überhaupt die Information speichert, welcher Datensatz zuletzt eingefügt wurde ..."

Für denjenigen, der das Wissen bereits besitzt, erscheint das immer einfach bzw. ist es nur logisch, genau so vorzugehen.

Anderes Beispiel:
Fensterheber eines Autos funktioniert nicht und Threadersteller fragt nach, was es denn sein könnte.
Das Schlagwort "Werkstatt" nützt diesem auch recht wenig ;)
 
Werbung:
Genau, ich versuch mich rauszureden. Anscheinend hören die Unterstellungen nicht auf.
Selbst wenn ich die PHP Doku von bis unten durchforstet hätte, hätte ich insert_ID nicht angeklickt, das es für mich vom Wortlaut her nach etwas ganz anderem klingt. Ergo würde ich die Suchmaschine auch nicht damit füttern.

Aber es ist natürlich leichter den Menschen negative Eigenschaften zu erstellen, als mal über den eigenen Tellerrand zu schauen.

Bisher fallen Sie, bdt600, als Forumstroll auf und dabei habe ich bisher nur wenig Beiträge von Ihnen gelesen.
Nur weiter so, mit Mitgliedern wie Ihnen, die derart arrogant und angriffslustig sind, kommt bestimmt jedes Forum schnell voran ;)
 
Nur weiter so, mit Mitgliedern wie Ihnen, die derart arrogant und angriffslustig sind, kommt bestimmt jedes Forum schnell voran ;)
Tja, mit Mitgliedern, die anscheinend google nicht bedienen können, auch die Doku nicht lesen wollen und sich lieber alles vorkauen lassen, geht's hier natürlich ganz toll voran.

Und wie du siesht, sehe ich das ja nicht alleine so:

Mit der suche nach "php insert id" findet man als erstes Resultat die korrekte Dokuseite. Diese 3 Schlagworte waren ja auch in deinem Anfangspost.
 
Zuletzt bearbeitet von einem Moderator:
Tja, aber richtiges Suchen in der Suchmaschine kann man ja lernen und schließlich will ich mich ja auch verbessern ;) Viel habe ich ja auch bereits durch scbawik, pax, usw. gelernt und muss da nicht mehr ständig nachfragen.

Und die Doku lese ich gerne, weil ich ja auch nicht gerne warte, bis jemand schreibt. Aber wenn man nicht weiß, wie das heißt, wonach man suchen muss bzw. gar nicht weiß, dass es das gibt. Deswegen wollte ich ja auch nur ein Schlagwort und keinen "vorgekauten" Code ;)

Wir lassen jetzt diese sinnlose Diskussion sein. Ich verbitte mir zukünftig sinnloses Getrolle und Unterstellungen. Ich bin weder faul, dumm oder sonst irgendetwas. Ich will Sprachen lernen und hoffe auch weiterhin, dass mir bei Ratlosigkeit geholfen wird.
Ich möchte Ihnen nicht das Recht auf das letzte Wort nehmen. Gerne können Sie hierzu noch etwas schreiben, ich werde es jedoch unbeantwortet lassen, um dem ein Ende zu setzen.

Seitdem mir scbawik die Schlagworte "mysql insert_ID" genannt hat, bin ich auch fleixig am probieren. Seit ca. 1,5h (nicht durchgehend) bekomm ich es jedoch nicht hin und versuche es immer wieder auf eine andere Art. Bekomm aber leider nur den Wert 0 (trotz Feld mit AI).

Unter normalen Umständen würde ich jetzt fragen, woran das liegen kann und den Code posten, aber irgendwie habe ich eine bestimmte Vorahnung was passiert, wenn ich hier wieder nach Hilfe suche.
 
Werbung:
Unter normalen Umständen würde ich jetzt fragen, woran das liegen kann und den Code posten
Kannst du doch machen, es hindert dich niemand daran. Allerdings befürchte ich, dass dann dein Quellcode zerpflückt wird. :D

Und noch ein Hinweis aus der Doku zu mysqli_insert_id:
Returns zero if there was no previous query on the connection or if the query did not update an AUTO_INCREMENT value.
 
Kannst du doch machen, es hindert dich niemand daran. Allerdings befürchte ich, dass dann dein Quellcode zerpflückt wird. :D

Und noch ein Hinweis aus der Doku zu mysqli_insert_id:
Das Zerpflücken des Quellcodes ist kein Problem, eher vorteilhaft, weil man daraus ja auch nur Lernen kann ;) Solange der dazu gehörige Kommentar wohlwollend und nicht herablassend ist, ist so etwas gerne und jederzeit gewünscht.

Returns zero if there was no previous query on the connection or if the query did not update anAUTO_INCREMENT value.
Das habe ich ja auch schon gelesen und genau deswegen versteh ich nicht, warum es nicht klappt. Besonders das Wort "update" verunsichert mich etwas. Ein AI Value ist aber definitiv vorhanden und der wird bei erfolgreichem Insert auch fortgesetzt.
 
Werbung:
Also hier erstmal der Code vom Insert:
PHP:
  $insert = "INSERT INTO groups
            (titel, groupadmin_ID, description)
             VALUES ('$titel','$groupadmin_ID','$description')";
  if($ergebnis = $mysqli->query($insert)) {
    $added_group_ID = mysql_insert_id();
    $_SESSION['added_group_ID'] = $added_group_ID;
Der funktioniert und der Eintrag erscheint auch in der DB mit fortlaufender group_ID.
Danach erstell ich eine Session mit genau dieser ID und gebe sie an andere Stelle wieder aus, und zwar so:+
PHP:
$added_group_ID = $_SESSION['added_group_ID'];
echo $added_group_ID;
Und da bekomm ich immer eine 0.

Und jetzt dürft ihr zerpflücken :)
 
Also hier erstmal der Code vom Insert:
PHP:
  $insert = "INSERT INTO groups
            (titel, groupadmin_ID, description)
             VALUES ('$titel','$groupadmin_ID','$description')";
  if($ergebnis = $mysqli->query($insert)) {
    $added_group_ID = mysql_insert_id();
    $_SESSION['added_group_ID'] = $added_group_ID;
Der funktioniert und der Eintrag erscheint auch in der DB mit fortlaufender group_ID.
Danach erstell ich eine Session mit genau dieser ID und gebe sie an andere Stelle wieder aus, und zwar so:+
PHP:
$added_group_ID = $_SESSION['added_group_ID'];
echo $added_group_ID;
Und da bekomm ich immer eine 0.

Und jetzt dürft ihr zerpflücken :)

Ich habe grad keine Lust darauf, dich zu zerpflücken, aber darfst dich vermutlich auf was gefasst machen :)

mysql_insert_id(); ???!!!!
 
Werbung:
Hatte es auch schon mit
PHP:
mysql_inser_id($insert);
probiert, ging aber auch nicht.
Da wird nicht mal eine Zahl ausgegeben.

Klick doch mal auf mysql_insert_id(); und lies was in der roten Box steht ;)

Außerdem fehlt in deinem zweiten Code-Auszug ein "t" nach "inser" und prozeduralen Stil darf man auch nicht mit dem objektorientierten mischen.
 
Zuletzt bearbeitet:
Das fehlende "t" lässt sich leicht erklären, habe das nicht aus dem Code kopiert sondern schnell per Hand geschrieben :)

Also wenn ich das jetzt richtig verstehe fehlt da einfach nur das "i" bei mysql_insert_id() ... also quasi mysqli_insert_id() ...
Ich dachte der Satz "wird in der Zukunft entfernt werden." besagt, dass es jetzt zwar noch geht, aber bald nicht mehr.
Ich probiers mal mit dem "i".
 
Zurück
Oben