PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : NULL in Datenbank eintragen


nivram
06.01.2005, 13:08:33
Hallo, ich bekomme Daten aus einem Formular!
Wenn in einem Feld keine Daten vorhanden sind, soll
das Script "NULL" eintragen!
Aber ich verstehe nicht, warum es das nicht macht!

Formularabfrage:


function checknull($var){
if(empty($var)){
$var = "NULL";
}
return $var;
}

$vorname = checknull($_POST['vorname']);


Eintrag in die DB:


$add = mysql_query("INSERT INTO adressbuch (vorname) VALUES ('$vorname');

Aber in der Datenbank steht als Wert dann "NULL" drin und nicht die wahre NULL für mySQL!

Gruß, Schröder

P.S.: Ich weiss, das es einen Thread gibt, wo das Thema behandelt wurde, aber so wie es dort beschrieben ist, funktioniert es bei mir nicht!

c4
06.01.2005, 13:19:32
Durch die ' in der Abfrage sagst Du dem Ding, dass es das als Zeichenkette eintragen soll. Das macht es auch. Nimm sie weg und es könnte tun, wie Du ihm geheißen.

xabbuh
06.01.2005, 13:19:34
Original geschrieben von nivram
Aber in der Datenbank steht als Wert dann "NULL" drin und nicht die wahre NULL für mySQL!
ich denke du willst da auch "NULL" eintragen?!

nivram
06.01.2005, 13:22:58
Ja, lol...
Das wars auch schon!
Immer diese dummen Anführungszeichen!

Vielen, vielen Dank!

Problem gelöst!

Eine schöne Woche noch..

Eventuell werde ich nochmal hierher zurückkommen!

xabbuh
06.01.2005, 13:28:01
Achso, jetzt verstehe ich, was gemeint war...

nivram
06.01.2005, 13:32:51
Ähhhh... Problem:

Jetzt bekomme ich kein Datenbankeinetrag mehr!
Hier mal mein komplettes Script:



function checknull($var){
if(empty($var)){
$var = "NULL";
}
return $var;
}
$anrede = $_POST['anrede'];
$vorname = checknull($_POST['vorname']);
$nachname = checknull($_POST['nachname']);
$tag = $_POST['tag'];
$monat = $_POST['monat'];
$jahr = $_POST['jahr'];
$p_strasse = checknull($_POST['p_strasse']);
$p_plz = checknull($_POST['p_plz']);
$p_ort = checknull($_POST['p_ort']);
$p_telefon = checknull($_POST['p_telefon']);
$p_handy = checknull($_POST['p_handy']);
$p_fax = checknull($_POST['p_fax']);
$p_email = checknull($_POST['p_email']);
$p_website = $_POST['p_website'];
$g_firma = checknull($_POST['g_firma']);
$g_strasse = checknull($_POST['g_strasse']);
$g_plz = checknull($_POST['g_plz']);
$g_ort = checknull($_POST['g_ort']);
$g_telefon = checknull($_POST['g_telefon']);
$g_handy = checknull($_POST['g_handy']);
$g_fax = checknull($_POST['g_fax']);
$g_email = checknull($_POST['g_email']);
$g_website = $_POST['g_website'];
$status = $_POST['status'];

include("../dbconnect.php4");

if(empty($jahr) or empty($monat) or empty($jahr)){
$gebdatum = "NULL"; } else {
$gebdatum = $tag . "." . $monat . "." . $jahr; }
if($p_website=="http://"){ $p_website = "NULL"; }
if($g_website=="http://"){ $g_website = "NULL"; }


$add = mysql_query("INSERT INTO 51_adressbuch (anrede, vorname, nachname, gebdatum, p_strasse,
p_plz, p_ort, p_telefon, p_handy, p_fax,
p_mail, p_website, g_firma, g_strasse, g_plz, g_ort, g_telefon, g_handy, g_fax, g_mail, g_website, status)
VALUES ('$anrede', $vorname, $nachname, $gebdatum, $p_strasse, $p_plz, $p_ort, $p_telefon,
$p_handy, $p_fax, $p_email, $p_website, $g_firma, $g_strasse,
$g_plz, $g_ort, $g_telefon, $g_handy, $g_fax, $g_email, $g_website, '$status')");



Ich habe jez bei jedem die '' weggenommen, wo ich nicht weiss ob es NULL oder einen Wert hat!
Nur status und anrede hab ich mit ''!

Ich bekomme aber jetzt keinen DB-Eintrag mehr. Ich schließe darauf, das es an den '' liegt!

Gruß, Schröder

xabbuh
06.01.2005, 13:48:11
Die Hochkommata müssen natürlich bei den Werten vorhanden sein, bei denen nicht NULL eingetragen werden soll. Warum definierst du nicht einfach als Standard für die Spalten NULL?

nivram
06.01.2005, 13:50:25
Sie sind als Standart NULL definiert! Aber wenn ich 'leer' eintrage, dann schreibt er doch auch leer darein oder nicht?

Ich probiere das mal aus!

Gruß, Schröder


Edit: Funktioniert nicht! Auch wenn sie leer sind, geht es nicht!