Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP-MySQL einfügen von Datensätzen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP-MySQL einfügen von Datensätzen

    Hallo!

    Habe folgende frage ... Die Datenbank sieht folgend aus ... nur ein Ausschnitt:

    CREATE TABLE leiter (
    lid int(10) NOT NULL,
    name char(20),
    vorname char(20),
    PRIMARY KEY (lid)
    );
    --
    -- Daten für Tabelle `leiter`
    --
    INSERT INTO `leiter` VALUES (1, 'mustermann', 'max');
    INSERT INTO `leiter` VALUES (3 , 'streber', 'klaus');
    -- --------------------------------------------------------
    --
    -- Tabellenstruktur für die Tabelle `sendet`
    CREATE TABLE sendet(
    lid INT NOT NULL references leiter(lid),
    aid INT NOT NULL references auftrag(aid)
    );
    -- --------------------------------------------------------
    -- --------------------------------------------------------

    --
    -- Tabellenstruktur für Tabelle `auftrag`
    --

    CREATE TABLE auftrag (
    aid int(11) NOT NULL auto_increment,
    prioritaet int(2),
    autotyp char(10),
    PRIMARY KEY (aid)
    );

    --
    -- Daten für Tabelle `auftrag`
    -- ----------------------------------------------

    Ich möchte nun im PHP script schreiben dass, wenn ein Auftrag eingefügt wird, so muss automatisch sendet.aid auf auftrag.aid referenzieren und praktisch den selben Inhalt haben.

    Habe also als PHP-Code:
    $auto = "INSERT INTO auftrag (aid, prioritaet, autotyp) VALUES ('','".$prioritaet."','".$autotyp."')";
    mysql_query($auto);

    und
    mysql_query("INSERT INTO sendet VALUES ('".$lid."', '')");

    Da ich dem Script mitteile, dass er bei sendet.lid einen konkreten Wert einfügen soll, klappt es auch!
    Doch bei sendet.aid bleibt der Wert konstant auf "0" und referenziert sicherlich auf nichts, was in auftrag.aid stehen kann.

    Ich hoffe es kann mir jemand helfen!


  • #2
    Du kannst den zuletzt eingefügten Wert, der in einer auto_increment Spalte eingefügt wurde, mit LAST_INSERT_ID() (MySQL) bzw. mysql_insert_id() (PHP) ermitteln.

    Kommentar


    • #3
      Ja, danke für die schnelle Hilfe!

      Doch das habe ich auch probiert, und MySQL zeigt mir "0" als Wert.

      Kommentar


      • #4
        Dann wirst du wohl vorher noch keinen Wert in einer auto_increment Spalte während der aktuellen Verbindung eingetragen haben oder du hast die Funktion falsch angewandt.

        Kommentar


        • #5
          Ich verstehe.

          Angenommen, ich hatte dann die Funktion falsch angewandt. Wie soll dann der Aufruf dann lauten? Wenn ich das direkt in MySQL eingebe.

          Vielen Dank!

          Kommentar


          • #6
            Zitat von Vladi
            Angenommen, ich hatte dann die Funktion falsch angewandt. Wie soll dann der Aufruf dann lauten? Wenn ich das direkt in MySQL eingebe.
            Wie hast du es denn gemacht?

            Kommentar


            • #7
              Ich möchte es in PHP schreiben, sonst nichts.

              Kommentar


              • #8
                Trotz allem wirst du doch einen Ansatz haben, mit dem du es eben versucht hast:

                Doch das habe ich auch probiert, und MySQL zeigt mir "0" als Wert.

                Kommentar


                • #9
                  Ich habe es direkt in PHP-MyAdmin eingegeben:
                  Zuerst einen Datensatz eingefügt,
                  danach gefragt
                  last_insert_id() ;

                  Als Ergebnis erscheint dann "0"!

                  Kommentar


                  • #10
                    In phpMyAdmin benutzt man ja auch keine PHP- sondern MySQL-Funktionen. Und unter MySQL heißt die Funktion LAST_INSERT_ID().

                    Kommentar


                    • #11
                      Vielen Dank!

                      Kommentar

                      Lädt...
                      X