Ankündigung

Einklappen
Keine Ankündigung bisher.

last insert Id

Einklappen

Neue Werbung 2019

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

  • last insert Id

    Hallo zusammen,

    ich komm nicht mehr weiter

    Ich will ein Insert aus einem Kontaktformular in zwei Tabellen schreiben.
    Erst ein Insert in eine Gast-tabelle (Benutzerkonto) und mit dem ihrem der ID (autoincrement) dann als Forein - Key in eine neue Tabelle.

    Was mache ich falsch ? Gast wird angelegt, Last insert id kommt leider als 0 zurück und bei der Buchung springt er mir automatisch in den Else Zweig.
    PHP-Code:


      
    //error_reporting(E_ERROR | E_WARNING | E_PARSE);

                   //Verbindung zur DB aufbauen  (Schritt 2)
                    
    $mysqli = new mysqli('localhost''root''''feriendb');

                    
    //Verbindungsaufbau ok?
                    
    if ($mysqli->error)
                    {
                            
    //...nein!
                            
    echo ('Fehler beim Verbindungsaufbau (' $mysqli->errno '): ' $mysqli->error);
                    }
                    else {

                            
    //...ja!
                            //SQL-Anweisung formlieren  (Schritt 3)
                            
    $sql1 "insert into gast (Vorname, Name, eMail, fon, Straße, PLZ, Ort) values('" $_POST['vname'] . "', '" $_POST['name'] . "', '" $_POST['mail'] . "', '" $_POST['fon'] . "',   '" $_POST['strasse'] . "',   '" $_POST['plz'] . "',  '" $_POST['ort'] . "')";
                           
                            
    //SQL-Anweisung absetzen und Ergebnistabelle in $result merken
                            
    if ($mysqli->query($sql1) === TRUE) {
                                            echo 
    "Benutzerkonto angelegt";
                                                        
    printf("Letzer eingefügter Datensatz hat id %d\n"mysql_insert_id());
                            } else {
                                    echo 
    "Konto wurde nicht angelegt - Datenbankfehler";
                        
                            }
                            
                            
    $query "INSERT INTO buchungen (gastID, personenanzahl, anreise, abreise, anmerkung) VALUES (LAST_INSERT_ID(),'" $_POST['anreise'] . "','" $_POST['abreise'] . ", '3'') ";
                            
                             if (
    $mysqli->query($query) === TRUE) {
                                            echo 
    " Urlaub gebucht";
                            } else {
                                    echo 
    "Buchung fehlgeschlagen";
                                
                            }

                    }
                    
    $mysqli->close();

     } else {


            echo 
    "Ungültige oder leere Daten  --> hier noch zurück button programmieren ;)     " ;

             echo 
    $_POST["name"] ;
        echo 
    $_POST["strasse"];
        echo 
    $_POST["vname"];
          echo  
    $_POST["plz"];
          echo  
    $_POST["ort"];
     echo   
    $_POST["mail"];
     echo  
    $_POST["fon"];
             echo  
    $_POST["anreise"];
             echo    
    $_POST["abreise"];



  • #2
    PHP-Code:
    $mysqli->query($sql1)
    [...]
    mysql_insert_id() 
    merkste was?
    [URL="http://goo.gl/6Biyf"]Lerne Grundlagen[/URL] | [URL="http://sscce.org/"]Schreibe gute Beispiele[/URL] | [URL="http://goo.gl/f2jR7"]PDO > mysqli > mysql[/URL] | [URL="http://goo.gl/jvfSZ"]Versuch nicht, das Rad neu zu erfinden[/URL] | [URL="http://goo.gl/T2PU5"]Warum $foo[bar] böse ist[/URL] | [URL="http://goo.gl/rrfzO"]SQL Injections[/URL] | [URL="http://goo.gl/Q81WJ"]Hashes sind keine Verschlüsselungen![/URL] | [URL="http://goo.gl/2x0e2"]Dein E-Mail Regex ist falsch[/URL]

    Kommentar


    • #3
      Zitat von ApoY2k Beitrag anzeigen
      PHP-Code:
      $mysqli->query($sql1)
      [...]
      mysql_insert_id() 
      merkste was?
      muss ich da mysqli verwenden?

      Dann kommt der fehler--> siehe Bild:
      Angehängte Dateien

      Kommentar


      • #4
        https://www.google.de/?gws_rd=ssl#q=...last+insert+id

        Die Fehlermeldung besagt doch, wo das Problem ist!
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Zitat von Arne Drews Beitrag anzeigen
          https://www.google.de/?gws_rd=ssl#q=...last+insert+id

          Die Fehlermeldung besagt doch, wo das Problem ist!
          Ich kenn mich mit PHP kaum aus und auch mit der Fehlermeldung.
          ICh weiß nicht was der fehler ist.
          Und gegoogelt habe ich bereits.

          Kommentar


          • #6
            Lesen kannst du aber?

            http://www.php.net/manual/de/mysqli.insert-id.php

            Parameter-Liste

            link
            Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.
            [URL="http://goo.gl/6Biyf"]Lerne Grundlagen[/URL] | [URL="http://sscce.org/"]Schreibe gute Beispiele[/URL] | [URL="http://goo.gl/f2jR7"]PDO > mysqli > mysql[/URL] | [URL="http://goo.gl/jvfSZ"]Versuch nicht, das Rad neu zu erfinden[/URL] | [URL="http://goo.gl/T2PU5"]Warum $foo[bar] böse ist[/URL] | [URL="http://goo.gl/rrfzO"]SQL Injections[/URL] | [URL="http://goo.gl/Q81WJ"]Hashes sind keine Verschlüsselungen![/URL] | [URL="http://goo.gl/2x0e2"]Dein E-Mail Regex ist falsch[/URL]

            Kommentar


            • #7
              PHP-Code:
              $last_id mysqli_insert_id($mysqli); 
              hiermit geht es !

              Kommentar


              • #8
                Faszinierend! Es funktioniert, wie es im Manual beschrieben wurde! Ich fall vom Glauben ab!
                [URL="http://goo.gl/6Biyf"]Lerne Grundlagen[/URL] | [URL="http://sscce.org/"]Schreibe gute Beispiele[/URL] | [URL="http://goo.gl/f2jR7"]PDO > mysqli > mysql[/URL] | [URL="http://goo.gl/jvfSZ"]Versuch nicht, das Rad neu zu erfinden[/URL] | [URL="http://goo.gl/T2PU5"]Warum $foo[bar] böse ist[/URL] | [URL="http://goo.gl/rrfzO"]SQL Injections[/URL] | [URL="http://goo.gl/Q81WJ"]Hashes sind keine Verschlüsselungen![/URL] | [URL="http://goo.gl/2x0e2"]Dein E-Mail Regex ist falsch[/URL]

                Kommentar


                • #9
                  Zitat von ApoY2k Beitrag anzeigen
                  Faszinierend! Es funktioniert, wie es im Manual beschrieben wurde! Ich fall vom Glauben ab!
                  Aber mein Datenbankeintag funktioniert noch nicht was mach ich da jetz falsch? Also konto wird angelegt, insert id übergeben, aber die BUchungstablee geht immer noch auf fehlgeschlagen...
                  PHP-Code:

                                          
                  //...ja!
                                          //SQL-Anweisung formlieren  (Schritt 3)
                                          
                  $sql1 "insert into gast (Vorname, Name, eMail, fon, Straße, PLZ, Ort) values('" $_POST['vname'] . "', '" $_POST['name'] . "', '" $_POST['mail'] . "', '" $_POST['fon'] . "',   '" $_POST['strasse'] . "',   '" $_POST['plz'] . "',  '" $_POST['ort'] . "')";
                                         
                                          
                  //SQL-Anweisung absetzen und Ergebnistabelle in $result merken
                                          
                  if ($mysqli->query($sql1) === TRUE) {
                                                          echo 
                  "Benutzerkonto angelegt";
                                                          
                  $last_id mysqli_insert_id($mysqli);
                                          } else {
                                                  echo 
                  "Konto wurde nicht angelegt - Datenbankfehler";
                                      
                                          }

                          
                                          
                  $query "INSERT INTO buchungen (gastID, personenanzahl, anreise, abreise, anmerkung) VALUES ($last_id, '5','" $_POST['anreise'] . "','" $_POST['abreise'] . ", '3'') ";
                                          
                                           if (
                  $mysqli->query($query) === TRUE) {
                                                          echo 
                  " Urlaub gebucht";
                                          } else {
                                                  echo 
                  "Buchung fehlgeschlagen";
                                              
                                          } 

                  Kommentar


                  • #10
                    42
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar


                    • #11
                      Zitat von Arne Drews Beitrag anzeigen
                      42
                      danke für auch diesen Sinnvollen Beitrag......

                      Kommentar


                      • #12
                        Ja, was erwartest Du denn von uns?!
                        Glaubst Du wir sitzen hier mit Glaskugeln, die wir mit Deinem Code füttern und der Fehler ist behoben?

                        Gib Du doch mal sinnvolle Infos, was z.B. für eine (Fehler-)Meldung jetzt kommt!
                        Competence-Center -> Enjoy the Informatrix
                        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                        Kommentar


                        • #13
                          PHP-Code:
                          ", '3'') " 
                          [URL="http://goo.gl/6Biyf"]Lerne Grundlagen[/URL] | [URL="http://sscce.org/"]Schreibe gute Beispiele[/URL] | [URL="http://goo.gl/f2jR7"]PDO > mysqli > mysql[/URL] | [URL="http://goo.gl/jvfSZ"]Versuch nicht, das Rad neu zu erfinden[/URL] | [URL="http://goo.gl/T2PU5"]Warum $foo[bar] böse ist[/URL] | [URL="http://goo.gl/rrfzO"]SQL Injections[/URL] | [URL="http://goo.gl/Q81WJ"]Hashes sind keine Verschlüsselungen![/URL] | [URL="http://goo.gl/2x0e2"]Dein E-Mail Regex ist falsch[/URL]

                          Kommentar


                          • #14
                            Es kommt eben keine fehlermeldung....

                            Es springt mir nur in den Else zweig...

                            Kommentar


                            • #15
                              Natürlich kommt eine Fehlermeldung, du siehst sie einfach nicht, weil du nirgends http://php.net/manual/en/mysqli.error.php benutzt
                              [URL="http://goo.gl/6Biyf"]Lerne Grundlagen[/URL] | [URL="http://sscce.org/"]Schreibe gute Beispiele[/URL] | [URL="http://goo.gl/f2jR7"]PDO > mysqli > mysql[/URL] | [URL="http://goo.gl/jvfSZ"]Versuch nicht, das Rad neu zu erfinden[/URL] | [URL="http://goo.gl/T2PU5"]Warum $foo[bar] böse ist[/URL] | [URL="http://goo.gl/rrfzO"]SQL Injections[/URL] | [URL="http://goo.gl/Q81WJ"]Hashes sind keine Verschlüsselungen![/URL] | [URL="http://goo.gl/2x0e2"]Dein E-Mail Regex ist falsch[/URL]

                              Kommentar

                              Lädt...
                              X