Ankündigung

Einklappen
Keine Ankündigung bisher.

HTML-Formular: FLOAT DEFAULT NULL speichert immer 0.0

Einklappen

Neue Werbung 2019

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

  • HTML-Formular: FLOAT DEFAULT NULL speichert immer 0.0

    Servus,

    ich habe ein HTML-Formular erstellt und Ziel ist, dass NULL in einer Float-Spalte gespeichert wird, wenn das Fomularfeld leer ist.

    Wie muss ich in PHP den NULL-Wert für eine FLOAT-Spalte speichern, wenn ein Formular-Feld leer bleibt? Die Spalte ist als

    Code:
    strom FLOAT(5,1) NULL
    deklariert. Egal was ich mache, am Ende wird immer ein 0.0 im Feld gespeichert, obwohl im HTML-Formular nix eingetragen wird!
    Code:
    $sql = "INSERT INTO tbl1 (strom) VALUES ('$_POST['STROM']')"
    Bei den anderen Spalten (varchar, int, usw) funktioniert es prima, nur die Float-Spalte weigert sich permanent, standardmäßig NULL zu speichern, wenn das Formular-Feld leer ist.

    Wenn ich über den mysql-Client manuell NULL in das Feld eintrage, funktioniert ist. Die Float-Spalte kann also NULL-Werte annhemen.

    Ich hoffe, Ihr könnt mir helfen!
    Danke!!!

  • #2
    Dann musst du entweder dafür sorgen, dass $_POST['STROM'] NULL ist, oder du frägst vorher ab und gibst dem Insert NULL mit.
    Und dass das bei einer INT-Spalte auf deine Art funktioniert, wage ich zu bezweifeln.
    Gruss
    L

    Kommentar


    • #3
      ---zu langsam---

      Kommentar


      • #4
        Ok, danke für den Hinweis!

        Kann mir bitte jemand verraten, wie ich NULL nicht als STRING in ne Variable bekomme? Folgender Code funzt nämlich auch nicht:

        Code:
        if ($_POST['STROM'] == '') {$varFloat = NULL; } else {$varFloat = $_POST['STROM']; };
        
        $sql2 = "    INSERT INTO tbl1 (strom) VALUES ('$varFloat') ";
        Danke!

        P.S.: Dann nerve ich auch nicht
        P.S.: Ich habe es mit INT auch nicht versucht, richtig erkannt

        Kommentar


        • #5
          Wenn es in der Query selbst funktioniert mußt Du eben da NULL eintragen (Stringverknüpfung wie jetzt, ' ' variabel halten).
          [COLOR="#F5F5FF"]--[/COLOR]
          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
          [COLOR="#F5F5FF"]
          --[/COLOR]

          Kommentar


          • #6
            Zitat von nikosch77-new Beitrag anzeigen
            Wenn es in der Query selbst funktioniert mußt Du eben da NULL eintragen (Stringverknüpfung wie jetzt, ' ' variabel halten).
            Sorry, hab mir Deinen Satz mehrmals durchgelesen, aber kann Dir nicht ganz folgen. Ich denke mal, dass in meinem zuletzt gezeigten Code das Problem ist, dass $varFloat den Wert Null als String gespeichert hat und deswegen wieder 0.0 gespeichert wird. Wenn ich testweise NULL statisch eintrage,
            Code:
            $sql2 = " INSERT INTO tbl1 (strom) VALUES (NULL) ";
            funktioniert es.

            Wie bekomme ich NULL in den SQL-Query, wenn das Feld im HTML-Formular leer ist?

            Kommentar


            • #7
              Zitat von schmidtsmikey Beitrag anzeigen
              Wenn ich testweise NULL statisch eintrage,
              Code:
              $sql2 = " INSERT INTO tbl1 (strom) VALUES (NULL) ";
              funktioniert es.
              Genau das meinte ich
              Zitat von schmidtsmikey Beitrag anzeigen
              Wie bekomme ich NULL in den SQL-Query, wenn das Feld im HTML-Formular leer ist?
              Was hindert Dich daran, den String wie oben zusammenzubauen?

              Eine Variante unter vielen:
              PHP-Code:
              $varFloat = empty ($_POST['STROM'])
                           ? 
              'NULL'
                           
              "'" .$_POST['STROM']. "'";

              $sql2 'INSERT INTO tbl1 (strom) VALUES (' .$varFloat')'
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • #8
                So, ich habe den Fehler gefunden: bei den Werten muss man natürlich die Anführungsstriche weglassen!!!

                $sql2 = " INSERT INTO tbl1 (strom) VALUES ($varFloat) ";

                Kommentar


                • #9
                  Wenn das funktioniert:
                  $sql2 = " INSERT INTO tbl1 (strom) VALUES (NULL) ";
                  sollte der Code oben auch funktionieren.

                  Laß Dir $sql2 ausgeben und kontrolliere die Query. Laß Dir $_POST['STROM'] ausgeben (var_dump) und schau, obs überhaupt leer ist.
                  [COLOR="#F5F5FF"]--[/COLOR]
                  [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                  [COLOR="#F5F5FF"]
                  --[/COLOR]

                  Kommentar

                  Lädt...
                  X