MYSQL - DATE mit leerem Wert

Dunas

Erfahrenes Mitglied
100er POST

Ich glaube, dass geht gar nicht anders. Aber du kannst doch Abfragen, ob das Datum 1970-01-01 ist; wenn ja, dann soll es dein Programm als "unbekannt" oder eben "NULL" interpretieren.


Das es anders geht habe ich ja bewiesen.
Vieleicht liegt es daran das du aus nichts ein Datum formen möchtest.

PHP:
    $query = '  INSERT INTO
                    `adressen`
                    (
                    `nummer`,
                    `eintritt`,
                    `austritt`,
                    )
                VALUES
                (
                "' .$nummer. '",
                "' .date( 'Y-m-d', strtotime( $eintritt ) ). '",
                "' .date( 'Y-m-d', strtotime( $austritt ) ). '",
                )';
So wie ich dich verstanden habe ist $austritt leer.

Eine Interpretation ist nicht schwer.
Wenn du die Sachen anzeigen lässt, überprüfst du einfach ob der Austrittswert = 1970-01-01 ist. Wenn ja zeigt du einfach nichts an.
 
Zuletzt bearbeitet:

zeja

Erfahrenes Mitglied
Warum läßt beim INSERT INTO die Datumsspalte in der Spaltenaufzählung nicht einfach weg und ebenso bei den VALUES? Dann sollte doch NULL drin stehen.
 

skippy3

Mitglied
Warum läßt beim INSERT INTO die Datumsspalte in der Spaltenaufzählung nicht einfach weg und ebenso bei den VALUES? Dann sollte doch NULL drin stehen.

Ist auch eine Möglichkeit. Werde ich mal ausprobieren (Wobei ich immer noch nicht verstehe, dass in PHPMyAdmin ein gelöschtes Feld einen Wert bekommt)
 

skippy3

Mitglied
100er POST

Das es anders geht habe ich ja bewiesen.
Vieleicht liegt es daran das du aus nichts ein Datum formen möchtest.
PHP:
    $query = '  INSERT INTO
                    `adressen`
                    (
                    `nummer`,
                    `eintritt`,
                    `austritt`,
                    )
                VALUES
                (
                "' .$nummer. '",
                "' .date( 'Y-m-d', strtotime( $eintritt ) ). '",
                "' .date( 'Y-m-d', strtotime( $austritt ) ). '",
                )';
So wie ich dich verstanden habe ist $austritt leer.

$austritt ist beim anlegen leer. Ich habe auch noch das Geb-Datum, das kann leer sein oder eben mit einer Angabe. Mich stört einfach, dass ein Feld mit DEFAULT NULL auch ohne Eingabe 1970-01-01 bekommt.

100er POST
Eine Interpretation ist nicht schwer.
Wenn du die Sachen anzeigen lässt, überprüfst du einfach ob der Austrittswert = 1970-01-01 ist. Wenn ja zeigt du einfach nichts an.

Eine Interpretation ist (für mich) schon schwer. Lasse dich von dem obigen Code nicht täuschen, den habe ich auch nur mit Unterstützung von LOOMES hinbekommen (oder besser gesagt er und ich habe abgetippt)
 

mDie

Grünschnabel
Hallo,

auch wenn meine Antwort erst ein paar Jahre später kommt, aber du meinst sicher dies hier:

Code:
$sql = "INSERT INTO person (
    name,
    geburtstag,
    alter
) VALUES (
    '".$_POST['name']."',
    ".(($_POST['geburtstag']=='')?"NULL":("'".$_POST['geburtstag']."'")).",
    '".$_POST['alter']."'
)";

In der Variable "Geburtstag" ist - wenn nicht leer - ein Geburtsdatum im Format: YYYY-MM-DD enthalten. Übergibst du ein Datum im Format DD-MM-YYYY, musst du $_POST['geburtstag'] wie folgt ändern: date('Y-m-d', strtotime($_POST['geburtstag'])).