Kein Pflichtfeld, darf aber nicht leer sein?

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

  • Kein Pflichtfeld, darf aber nicht leer sein?

    Hallo,

    ich werd' bekloppt.
    Folgendes:

    ich habe eine Tabelle mit diversen Feldern erstellt, darunter auch drei Datumsfelder (ich hasse den Feldtyp DATE). Alles schön verpackt in einer MySQL-Datenbank.

    Diese Datumsfelder sind keine Pflichtfelder, d.h. sie dürfen auch NULL sein.

    Das Datum selber kommt, sofern angegeben von einem Formular, wobei es sich um 3 Select-Felder handelt, um Falscheingaben gleich im Vorfeld zu erschlagen.

    Bei der Verarbeitung sage ich dann:


    PHP-Code:
    if(($_POST['zeitraum_von_t']>0)&&($_POST['zeitraum_von_m']>0)&&
    (
    $_POST['zeitraum_von_j']>0)){
    $zeitraum_von=$_POST['zeitraum_von_j']."-".$_POST['zeitraum_von_m']."-"
    .$_POST['zeitraum_von_t'];

    Und per Abfrage will ich das dann anfügen:
    PHP-Code:
    INSERT INTO.....(...., mein_DATE_Feld,.......) VALUES (....., '".$zeitraum_von."',......) 
    Wenn das Feld leer ist, steht in der Abfrage bei den Values natürlich nur ein '', das Feld soll also leer bleiben.

    Als Fehlermeldung kommt "Incorrect date value" - wie kann ich das umgehen oder besser: was mache ich falsch?

    Schon mal DANKE für mögliche Antworten,
    Gruß,
    Dennis

  • #2
    zeig doch mal bitte die query, die du tatsächlich an die db abschickst.
    ... wobei es sich um 3 Select-Felder handelt, um Falscheingaben gleich im Vorfeld zu erschlagen.
    auch solche wie "30. februar"?

    Kommentar


    • #3
      Kein Problem, hier die Abfrage in ihrer vollen "Schönheit":

      PHP-Code:
      $sqlinsert="INSERT INTO projekt (prj_nr, prj_kunde, prj_titel,
       prj_zeitraum_von, prj_zeitraum_bis, prj_deadline, prj_perso,
      prj_reisepass, prj_uebernachtung, prj_essensmarken,
       prj_cateringtage, prj_lanyardfarben, prj_angelegt_am,
      prj_angelegt_von) 
      VALUES ('"
      .htmlentities($_POST['f_prjnr'])."','".$_POST['f_kunde']."',
      '"
      .htmlentities($_POST['f_titel'])."','".$zeitraum_von."',
      '"
      .$zeitraum_bis."', '".$deadline."', '".$perso."', '".$reise."',
       '"
      .$uebernachtung."', '".$essen."',
       '"
      .$catering."','".htmlentities($_POST['lanyards'])."','".$wann."', '".$id_benutzer."')"
      Im Formular selber kann man für das Datum übrigens nur Zahlen auswählen, also SELECT für Tag (1 bis 31), Monat (1-12) und Jahr (2006-1 bis 2006+5...

      $zeitraum_bis und $deadline werden genauso aufgebaut wie "zeitraum_von...

      Kommentar


      • #4
        ich hätte gern nur den einen string, der an die db geht.

        übrigens, kann ich dann trotzdem 30.2. auswählen?

        Kommentar


        • #5
          1. Ja, man könnte den 30.02. angeben
          Es ist eine interne Geschichte und ich vertraue da einfach mal auf die Denkleistung meiner Kollegen...

          2. Meinst Du das mit dem String an die DB:
          PHP-Code:
          INSERT INTO projekt (prj_nrprj_kundeprj_titelprj_zeitraum_von,
           
          prj_zeitraum_bisprj_deadlineprj_persoprj_reisepass
          prj_uebernachtungprj_essensmarkenprj_cateringtage
          prj_lanyardfarbenprj_angelegt_amprj_angelegt_vonVALUES 
          ('123','Testkunde','Testprojekt','2006-12-11',''''''''''''
          '','','2006-12-11, 06:12:47''1'
          In diesem Fall habe ich zeitraum_von angegeben (heutiges Datum), und die anderen Daten leer gelassen.

          Kommentar


          • #6
            wenn die anderen doch leer sind, warum nicht
            Code:
            NULL
            statt
            Code:
            ''
            ?

            Kommentar


            • #7
              Hi,

              ich weiß noch nicht so ganz was Du meinst, aber ich komme schon noch dahinter.
              Werde morgen weitertüfteln und mich dann wieder melden.

              Also wenn ich die Hochkommas durch ein NULL ersetzt kriegen würde, sollte die Abfrage funktionieren?

              Gruß,
              Dennis

              Kommentar


              • #8
                genau das wäre meine vermutung.

                Kommentar


                • #9
                  Herrlich wenn ein Tag damit beginnt, dass man "mal eben" ein Problemchen löst, das am Vortag einfach nicht verschwinden wollte.

                  Danke @penizillin!!

                  "NULL" ist mein Freund! :-)

                  Kommentar

                  Lädt...
                  X