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

nach INSERT Daten weiterverarbeiten

Ich probiers mal mit dem "i".

Unter Umständen funktioniert das - ist allerdings immer noch falsch:
http://php.net/manual/en/mysqli.insert-id.php#refsect1-mysqli.insert-id-examples

Es gibt zwei unterschiedliche Arten, wie MySQLi verwendet werden kann:
Den prozeduralen Stil - dieser ist eigentlich nur gut, wenn man ein mysql_* Projekt zeitsparend aktualisieren muss.
Der objektorientierte Stil - mit dem arbeitest du eigentlich schon von Anfang an - es ist auch der einzige der dich aktuell zu interessieren hat.
 
Zuletzt bearbeitet:
Werbung:
Okay, jetzt funktioniert es.
Danke nochmal für deine Hilfe!

Der Code sieht jetzt so aus:
PHP:
$insert = "INSERT INTO groups
           (titel, groupadmin_ID, description)
            VALUES ('$titel','$groupadmin_ID','$description')";
  if($ergebnis = $mysqli->query($insert)) {
    $added_group_ID = $mysqli->insert_id;
    $_SESSION['added_group_ID'] = $added_group_ID;

Das Einzig, was jetzt nicht klappt, ist ein erneutes Insert nach dem ersten Insert.

Mal blöd gefragt:
Stell es irgendwie eine Schwierigkeit dar, ein zweites Insert nach dem ersten Insert zu haben? Per Google finde ich da nichts, lediglich inserts in mehrere Tabellen gleichzeitig. Müsste es den nicht einen Fehler auswerfen, wenn mein Code irgendwie falsch ist? Das das jetzt nicht klappt, wundert mich echt, weil es ja eigentlich das Einfachste vom Einfachsten ist :/

Oder um es mal plastisch zu machen:
PHP:
$insert = "INSERT INTO groups
           (titel, groupadmin_ID, description)
            VALUES ('$titel','$groupadmin_ID','$description')";

if($ergebnis = $mysqli->query($insert)) {
  $added_group_ID = $mysqli->insert_id;
  $insert2 = "INSERT INTO groupmembers
            (group_ID, user_ID, gm_status)
            VALUES ('$added_group_ID', '$groupadmin_ID', '1')";
  $_SESSION['added_group_ID'] = $added_group_ID;
 
Zuletzt bearbeitet:
:mad::mad: Nur weil du einem String etwas zuweist, landet das noch lange nicht in der Datenbank :mad::mad:

Auch wenn ich jetzt wieder meckere, aber es wird Zeit, dass du mal mitdenkst!!! Es kann nicht sein, dass wir hier so ein Pillepalle besprechen müssen!!!
 
Werbung:
Okay, jetzt funktioniert es.
Danke nochmal für deine Hilfe!

Der Code sieht jetzt so aus:
PHP:
$insert = "INSERT INTO groups
           (titel, groupadmin_ID, description)
            VALUES ('$titel','$groupadmin_ID','$description')";
  if($ergebnis = $mysqli->query($insert)) {
    $added_group_ID = $mysqli->insert_id;
    $_SESSION['added_group_ID'] = $added_group_ID;

Das Einzig, was jetzt nicht klappt, ist ein erneutes Insert nach dem ersten Insert.

Mal blöd gefragt:
Stell es irgendwie eine Schwierigkeit dar, ein zweites Insert nach dem ersten Insert zu haben? Per Google finde ich da nichts, lediglich inserts in mehrere Tabellen gleichzeitig. Müsste es den nicht einen Fehler auswerfen, wenn mein Code irgendwie falsch ist? Das das jetzt nicht klappt, wundert mich echt, weil es ja eigentlich das Einfachste vom Einfachsten ist :/

Oder um es mal plastisch zu machen:
PHP:
$insert = "INSERT INTO groups
           (titel, groupadmin_ID, description)
            VALUES ('$titel','$groupadmin_ID','$description')";

if($ergebnis = $mysqli->query($insert)) {
  $added_group_ID = $mysqli->insert_id;
  $insert2 = "INSERT INTO groupmembers
            (group_ID, user_ID, gm_status)
            VALUES ('$added_group_ID', '$groupadmin_ID', '1')";
  $_SESSION['added_group_ID'] = $added_group_ID;

Ich sage jetzt einfach mal gar nichts dazu. Sieh's dir noch mal genau an ;)
 
Bevor das hier zu einer "Never ending story" wird:
PHP:
$insert = "INSERT
            INTO
              `groups`
               (`titel`, `groupadmin_ID`, `description`)
            VALUES
               ('$titel','$groupadmin_ID','$description')";

$mysqli->query($insert)
  or die ("MySQL-Error: " . $mysqli->error);

$added_group_ID = $mysqli->insert_id;

$insert2 = "INSERT
             INTO
              `groupmembers`
              (`group_ID`, `user_ID`, `gm_status`)
             VALUES
               ('$added_group_ID', '$groupadmin_ID', '1')";
             
$mysqli->query($insert2)
  or die ("MySQL-Error: " . $mysqli->error);
             
$_SESSION['added_group_ID'] = $added_group_ID;
 
:mad::mad: Nur weil du einem String etwas zuweist, landet das noch lange nicht in der Datenbank :mad::mad:

Auch wenn ich jetzt wieder meckere, aber es wird Zeit, dass du mal mitdenkst!!! Es kann nicht sein, dass wir hier so ein Pillepalle besprechen müssen!!!
Ihren Blutdruck wüsste ich gerne :)

Entschuldigt diesen miserablen Anfängerfehler.
Ich war der festen Annahme, dass allein durch diesen Punkt hier:
PHP:
  $insert2 = "INSERT INTO groupmembers
            (group_ID, user_ID, gm_status)
            VALUES ('$added_group_ID', '$groupadmin_ID', '1')";
der Datensatz in die DB gesendet wird und der Rest nur zur Überprüfung da ist, ob es geklappt hat.

Also verstehe ich das Ganze jetzt so:
dem String werden die verschiedenen Einträge zugeordnet und dann wird der String im Ganzen an die DB gesendet.

@bdt600
Danke für den Code, war aber inzwischen nicht mehr notwendig.
Allein durch Ihren Post gaben sie schon den notwendigen Hinweis ;)
 
Werbung:
Deine Anahme beruht auf fehlendem Grundlagenwissen! Und Grundlagen sollte man sich selber aneignen und nicht in einem Forum vorkauen lassen. Zum Programmieren gehört auch eine Portion logisches Denken.
Du solltest den Quellcode trotzdem übernehmen, weil da noch kleinere Korrekturen drin sind.
 
Gibt es weiter Änderungen bis auf das:
PHP:
or die ("MySQL-Error: " . $mysqli->error);
Bei mir hängt das zweite Insert in einer IF THAN Bedindung mit Weiterleitung nach erfolgreichem Insert.
Ich habe aber den o.g. Schnipsel nach dem 2. Insert eingefügt.

Ja, das sind Grundlagen.
Ich benutzt auch das Buch PHP X.X und MySQL X.X (weiß gerade nicht welche Versionen, liegt zu Hause).
Heute Abend werde ich das Buch mal nach $mysqli->query absuchen, wahrscheinlich hab ich die Zeile überflogen.
Dennoch nochmals vielen Dank für die Hilfe.
 
Werbung:
Werbung:
Zurück
Oben