Uwe: leeres Formularfeld in DB speichern!

Ich hab folgendes Problem:

Ich hab ein Formular mit 10 Feldern des Typs text und textarea. Diese Felder sollen (nicht müssen) vom Benutzer ausgefüllt und nach absenden in eine Datenbank gespeichert werden.

Mein Code mit dem ich es im moment versuche sieht wie folgt aus:
if datum ="" then datum =" " else datum ="'" & datum & "'"
if ueberschrift ="" then ueberschrift =" " else ueberschrift ="'" & ueberschrift & "'"
if absatz1 ="" then absatz1 =" " else absatz1 ="'" & absatz1 & "'"
if absatz2 ="" then absatz2 =" " else absatz2 ="'" & absatz2 & "'"
if absatz3 ="" then absatz3 =" " else absatz3 ="'" & absatz3 & "'"
if absatz4 ="" then absatz4 =" " else absatz4 ="'" & absatz4 & "'"
if absatz5 ="" then absatz5 =" " else absatz5 ="'" & absatz5 & "'"
if absatz6 ="" then absatz6 =" " else absatz6 ="'" & absatz6 & "'"
if absatz7 ="" then absatz7 =" " else absatz7 ="'" & absatz7 & "'"
if autor ="" then autor =" " else autor ="'" & autor & "'"
if email ="" then email =" " else email ="'" & email & "'"
if bild ="" then bild =" " else bild ="'" & bild & "'"
%>

<%
sql= "INSERT INTO tbl_betriebsrat VALUES ('" & datum & "','" & ueberschrift & "','" & absatz1 & "','" & absatz2  & "','" & absatz3 & "','" & absatz4 & "','" & absatz5 & "','" & absatz6 & "','" & absatz7 & "','" & autor & "','" & email & "','" & bild & "')"
daten.open sql, conn
%>

Aber wie gesagt funktioniert es nicht. Hat mir jemand vielleicht eine andere Lösung. bin für jede Hilfe dankbar.

  1. Aber wie gesagt funktioniert es nicht. Hat mir jemand vielleicht eine andere Lösung. bin für jede Hilfe dankbar.

    Hi! Und "funktioniert nicht" bedeutet in diesem Fall was? Welche Fehlermeldung erhälst Du etc. ?

    MfG
    MarkX.

  2. Hallo Uwe!

    Du schreibst zwar nicht, was genau nicht funktioniert. Ich denke aber, es liegt auch daran, dass Du die Variablen, falls sie existieren, in Hochkommata einschließt. Beim Insert machst Du das selbe nochmal.

    Der Select sieht derzeit also wie folgt aus:

    Insert ... (''datum'',''usw''...

    1.) Wenn kein Wert eingefügt werden soll, würde ich NULL nehmen - das geht wirklich ;-)

    2.) Andernfalls entweder im Code oder im Statement das Hochkomma angeben.

    Also zB

    if absatz1 = "" then absatz1 = "NULL" else absatz1 = "'" & absatz1 & "'"

    sql = "INSERT INTO tbl_betriebsrat VALUES (" & absatz & "," & ...

    Sollte sonst noch wo ein Fehler sein, bitte ich die anderen mal zu Wort, da ich nicht unbedingt der ASP-Guru bin ...

    mfg

    norbert =:-)

  3. Hallo,

    welche Datenbank benutzt du?

    Ich hab ein Formular mit 10 Feldern des Typs text und textarea. Diese Felder sollen (nicht müssen) vom Benutzer ausgefüllt und nach absenden in eine Datenbank gespeichert werden.

    Dann leg das in der db fest (sowas wie allow zero length?), dann brauchst Du nicht den Stunt zu machen, ein Leerzeichen einzufuegen...

    Immer gut: Lass Dir doch einfach mal das sql statement ausgeben mit
    response.write sql

    Bei Pflichtfeldern wuerde ich einfach eine Funktion mit RegExp schreiben, die Eingabe ueberprueft....

    Schreib nach dem Muster:
    Dim absatz7
    if absatz7 <> "" then absatz7 = request.form("absatz7")

    if absatz7 ="" then absatz7 =" " else absatz7 ="'" & absatz7 & "'"

    <%
    sql= "INSERT INTO tbl_betriebsrat VALUES ('" & datum & "','" & ueberschrift & "','" & absatz1 & "','" & absatz2  & "','" & absatz3 & "','" & absatz4 & "','" & absatz5 & "','" & absatz6 & "','" & absatz7 & "','" & autor & "','" & email & "','" & bild & "')"
    daten.open sql, conn
    %>

    Gruss
    Tobi