ich habe ein Eingabeformular, mit welchem per PHP in eine MYSQL-DB geschrieben werden soll. Dieses Formular besteht aus 3 Feldern.
Wenn ich jedoch eines der Felder leer lasse, wird nicht in die DB geschrieben. Woran kann das liegen?
Ist es vielleicht möglich, dass mit dem Script eine Eingabe in Zeile 11 erzwungen wird?? Muss ich das dann ändern?
Wenn das so ist, mußt Du das wohl ändern, ja :)
} else if (($addButton != "") && ($addText != "") && ($addamt != "") && ($addwas != "")) {
Und hier passiert auch genau das, was Du schon vermutet hast: Bei den vier Variablen wird geprüft, ob sie ungleich "" (sprich: nicht leer) sind.
Möchtest Du, daß eine davon leer sein darf, mußt Du die entsprechende Prüfung einfach nur rausnehmen. Aber:
$result = mysql_query("select max(id)+1 'id' from tbl_sachgebiet");
$row = mysql_fetch_array($result);
Wer immer das geschrieben hat, was hat sich offensichtlich nicht für die armen Leute interessiert, die das Ding auch benutzen müssen :) Schon bei Deinem Problem hat man darauf verzichtet, eine nette kleine Fehlermeldung auszugeben, falls ein Feld leer gelassen wurde.
Hier geht man sogar noch einen Schritt weiter und prüft nichtmal mehr, ob bei der Datenbankabfrage mittels mysql_query() eventuell ein Fehler aufgetreten ist; $result wird einfach in der nächsten Funktion weiterverwendet. IMHO ein grober Schnitzer.
Ersetze die Zeile mit $result=mysql_query durch etwas wie:
if (! $result = mysql_query("select max(id)+1 'id' from tbl_sachgebiet")) die("SQL-Fehler: ".mysql_error());
Falls dann mal ein Fehler auftreten sollte, bekommst Du den auch angezeigt und tappst nicht im Dunkeln, was schiefgegangen sein könnte (bzw. in diesem Fall: kriegst nichtmal mit, daß etwas schiefgegangen ist).
Gruß,
soenk.e