Nichts anstatt NULL

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

  • Nichts anstatt NULL

    Ich hab da mal ne Frage und die Antwort konnte ich leider nicht in der Suche finden.

    Ich möchte mit einem Formular und PHP-Script einen Datensatz Updaten.
    Dabei ergibt sich das problem das Felder ohne Inhalt auch ohne Inhalt bleiben sollen. So als wenn ich in phpMyAdmin ein Häkchen in des Feld NULL setze.

    Momentan habe ich das so gemacht:
    Nach dem Senden frage ich die Postvariablen ab und weise den Wert in eine neue Variable.

    PHP-Code:
    if(empty($_POST['Titel'])){
        
    $Titel NULL;
      } 
    Dann setze ich die Variable in eine SQL-Abfrage ein
    PHP-Code:
    $sql "UPDATE `TABELLE` SET Titel = '".$Titel."' WHERE `IntID` = ".$_POST['INTID']; 
    Dummerweise sieht diese SQL-Abfrage so aus
    [COLOR=blue]UPDATE[/COLOR] `TABELLE`[COLOR=blue]SET[/COLOR] Titel = [COLOR=darkred]''[/COLOR] [COLOR=blue]WHERE[/COLOR] `IntID` = [COLOR=green]1[/COLOR];

    Setze ich Das NULL bei der Variable $Titel in Anführungszeichen
    bekomme ich
    [COLOR=blue]UPDATE[/COLOR] `TABELLE`[COLOR=blue]SET[/COLOR] Titel = [COLOR=darkred]'NULL'[/COLOR] [COLOR=blue]WHERE[/COLOR] `IntID` = [COLOR=green]1[/COLOR];

    Und so soll das Ergebnis der SQL-Abfrage Aussehen:
    [COLOR=blue]UPDATE[/COLOR] `TABELLE`[COLOR=blue]SET[/COLOR] Titel = [COLOR=blue]NULL[/COLOR] [COLOR=blue]WHERE[/COLOR] `IntID` = [COLOR=green]1[/COLOR];

    Kann mir jemand sagen wie ich das hinbekomme?

  • #2
    PHP-Code:
    $Titel = empty($_POST['Titel']) ? NULL '"'.mysql_escape_string($_POST['Titel']).'"';

    $sql "UPDATE `TABELLE` SET Titel = ".$Titel." WHERE `IntID` = ".$_POST['INTID']; 
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      klappt nit

      Das klappt nicht. liefert folgendes:
      [COLOR=blue]UPDATE[/COLOR] `TABELLE`[COLOR=blue]SET[/COLOR] Titel = [COLOR=darkred]''[/COLOR] [COLOR=blue]WHERE[/COLOR] `IntID` = [COLOR=green]1[/COLOR];

      Kommentar


      • #4
        versuch mal:
        PHP-Code:
        $Titel = (strlen(trim($_POST['Titel']))<=0) ? NULL "'".mysql_escape_string($_POST['Titel'])."'";
        $sql "UPDATE `TABELLE` SET Titel = ".$Titel." WHERE `IntID` = ".$_POST['INTID']; 

        Kommentar


        • #5
          ups wie blöd

          sorry sorry sorry
          es geht doch WENN man die ' zeichen bei '".$Titel."' weg lässt.
          dann geht se aber auch so:
          PHP-Code:
          if(empty($_POST['Titel'])){
              
          $Titel "NULL";
          }else{
              
          $Titel "'".$_POST['Titel']."'";

          $sql = "UPDATE `TABELLE` SET Titel = ".$Titel." WHERE `IntID` = ".$_POST['INTID'];

          Danke für eure Hilfe

          Kommentar


          • #6
            und was ist jetzt der unterschied zu dem post von mir? ausser dass ich das kurze if() genommen habe?
            schliesslich sagtest du ja, dass mein code nicht funktioniert hat.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Original geschrieben von Abraxax
              und was ist jetzt der unterschied zu dem post von mir...
              deshalb habe ich mich doch entschuldigt ich hatte die Textzeichen nicht weggenommen. also dein code geht auch.

              Kommentar

              Lädt...
              X