Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular wird nicht in der Datenbank gespeichert.

Einklappen

Neue Werbung 2019

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

  • Formular wird nicht in der Datenbank gespeichert.

    Hallo Liebe Leute,

    ich stehe gerade vor einem Problem den ich nicht gelöst bekomme und zwar wenn ich ein Formular an die Datenbank schicke bekomme ich ein True für das Statement aber es wird nicht gespeichert.

    Sieht jemand eventuell von euch auf anhieb im folgendem Code ein Fehler ?


    Formular:

    HTML-Code:
    
    <span onclick="document.getElementById('id01').style.display='none'" class="w3-button w3-display-topright">&times;</span>
    
            <form  action="<?php $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
             <center>
             <p align="left"><h3>Rechnungseing&auml;nge:</h3></p> <br />
    
    
             <input type="text" name="rg_nummer" class="eintrag_input" placeholder="Rechnungsnummer"/>
    
             <input type="text" name="datum" class="eintrag_input" placeholder="Rechnungsdatum (dd-mm-yyyy)"/>
    
             <input class="eintrag_input" name="lieferant" type="text" placeholder="Name des Lieferanten" size="30"/>
    
             <input class="eintrag_input" name="total" type="text" placeholder="Bruttopreis (&euro;)" size="30"/>
             <br><br>
             <select name="typ" class="w3-select w3-border">
                 <option value="" disabled selected hidden>Wähle den Ausgabentyp:</option>
                 <option name="ware">Ware</option>
                 <option name="werbung">Werbung</option>
             </select>
             <br><br>
             <select name="mwst_frei" class="w3-select w3-border">
                  <option value="" disabled selected hidden>Ist es eine MwSt. freie Ausgabe ?</option>
                  <option name="ja">Ja</option>
                  <option name="de">Nein (19%)</option>
                  <option name="speziell">Speziell</option>
                  <option name="quittung">Quittung</option>
             </select>
             <br><br>
             <select name="gezahlt" class="w3-select w3-border">
                 <option value="" disabled selected hidden>Welche Zahlungsmethode wurde benutzt ?</option>
                 <option name="bnp">Bank&uuml;berweisung</option>
                 <option name="paypal">PayPal</option>
                 <option name="visa">VISA</option>
                 <option name="bar">Bar</option>
             </select>
             <br><br>          
             <select name="ausland" class="w3-select w3-border">
                 <option value="" disabled selected hidden>In welchen Land ist die Ausgabe entstanden ?</option>
                 <option name="deutschland">Deutschland</option>
             </select>
             <br><br>
             <input type="file" class="w3-button w3-grey" name="datei"><br><br>
             <input type="submit" class="w3-button w3-blue" name="submit" value="Kosten eintragen"/><br><br>
             </center>
             </form>        
    

    Hier die Formularauswertung:


    PHP-Code:



        
    //Kontrolle ob alle Felder ausgefüllt sind und ob es wirklich in die Datenbank gespeichert worden ist.
        
    if (isset($_POST['submit'])){

         if (isset(
    $_POST ['datum']) && !empty($_POST['datum']) isset($_POST ['rg_nummer']) && !empty($_POST['rg_nummer']) && isset($_POST ['total']) && !empty($_POST['total']) && isset($_POST ['lieferant']) && !empty($_POST['lieferant']) && isset($_POST ['typ']) && !empty($_POST['typ']) && isset($_POST ['mwst_frei']) && !empty($_POST['mwst_frei']) && isset($_POST ['ausland']) && !empty($_POST['ausland']))
         {

         
    $datum $_POST ["datum"];
         
    $rg_nummer $_POST ["rg_nummer"];
         
    $total $_POST ["total"];
         
    $lieferant $_POST ["lieferant"];
         
    $typ $_POST ["typ"];
         
    $mwst_frei $_POST ["mwst_frei"];
         
    $gezahlt $_POST ["gezahlt"];
         
    $ausland $_POST ["ausland"];

         require_once(
    'function/mwst_ausgaben.php');

         
    // Formular Daten in die DB eintragen
         
    $statement $pdo->prepare("INSERT INTO ausgaben (datum, rg_nummer, total, lieferant, typ, mwst_frei, zu_erhaltende_mwst, zu_zahlende_mwst, gezahlt, ausland)
         VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
    );
         
    $statement->execute(array(date('Y-m-d'strtotime($datum)), "$rg_nummer"str_replace(',''.'$total), "$lieferant""$typ""$mwst_frei""$zu_erhaltende_mwst""$zu_zahlende_mwst""$gezahlt""$ausland"));

         
    // Wenn Erfolgreich in DB eingetragen dann...    
         
    if (isset($statement)) {
            echo 
    '<div class="w3-panel w3-green w3-display-container">
                     <span onclick="this.parentElement.style.display=\'none\'" class="w3-button w3-green w3-large w3-display-topright">&times;</span>
                     <h3>Erfolgreich eingetragen!</h3>
                     <p>Deine Ausgabe vom: '
    .$datum.' wurde Erfolgreich eingetragen</p>
                  </div>'
    ;
         }
         
    // Wenn Verbindungsproblem mit DB ist dann...
         
    else{
         echo 
    "<center>Leider haben wir einen Server Problem. Versuchs später erneut!</center>" ;
         }

         }

         
    // Wenn nicht alle Felder ausgefüllt sind dann...
         
    else {    
           echo 
    '<div class="w3-panel w3-red w3-display-container">
                 <span onclick="this.parentElement.style.display=\'none\'" class="w3-button w3-red w3-large w3-display-topright">&times;</span>
                 <h3>ACHTUNG!</h3>
                 <p>Du hast nicht Alle Felder ausgefüllt dein Eintrag wurde nicht gespeichert!</p>
                </div>'
    ;
        }

        } 

    Danke im voraus

    LG casa47

  • #2
    wenn ich ein Formular an die Datenbank schicke bekomme ich ein True für das Statement
    Falsch, du testest, ob $statement nicht NULL ist (wahr, da es eine PDOStatement-Instanz ist)

    Was du testen willst, ist der Return-Wert von $statement->execute(), den du aber nicht speicherst.

    Kommentar


    • #3
      Zitat von Dormilich Beitrag anzeigen
      Falsch, du testest, ob $statement nicht NULL ist (wahr, da es eine PDOStatement-Instanz ist)

      Was du testen willst, ist der Return-Wert von $statement->execute(), den du aber nicht speicherst.
      Dormilich Danke für die Info! weißt du warum das nicht gespeichert wird ?

      Kommentar


      • #4
        Lass dir doch von pdo die Fehler ausgeben, dann weist genau woran das liegt.
        Siehe auch https://php-de.github.io/jumpto/pdo/

        Kommentar


        • #5
          Zitat von casa47 Beitrag anzeigen
          weißt du warum das nicht gespeichert wird ?
          Ja, weil du es einfach nicht machst.

          Kommentar

          Lädt...
          X