Hi,
also ich habe es jetzt mal so versucht, dass ich im ajax bei leeren Feldern für die Tore die Variable zum Posten gar nicht setze, sondern nur, wenn wirklich was drin steht. Soweit alles gut, die Variablen werden nicht übergeben, da sie nicht existieren. In der php prüfe ich nun mittels isset und wenn nicht, setze ich jeweils eine Variable $irgendwas = NULL. Um den query übersichtkicher zu halten, schreibe ich alle relevanten Daten jetzt in ein Array und folgendes steht da drin:
Befüllt habe ich das Array folgendermaßen:
$spieltagid = escape($_POST['stid'], 'integer');
if (!isset($_POST['heimtore1'])) {
$heimtore1 = NULL;
} else {
$heimtore1 = escape($_POST['heimtore1'], 'integer');
} usw...
$st_array[] = array('spielid' => ($spieltagid * 9) - 8, 'heimid' => escape($_POST['heim1'], 'integer'), 'gastid' => escape($_POST['gast1'], 'integer'), 'date' => makeTimestamp(escape($_POST['date1'], 'string')), 'toreheim' => $heimtore1, 'toregast' => $gasttore1);
$st_array[] = array('spielid' => ($spieltagid * 9) - 7, 'heimid' => escape($_POST['heim2'], 'integer'), 'gastid' => escape($_POST['gast2'], 'integer'), 'date' => makeTimestamp(escape($_POST['date2'], 'string')), 'toreheim' => $heimtore2, 'toregast' => $gasttore2);
$st_array[] = array('spielid' => ($spieltagid * 9) - 6, 'heimid' => escape($_POST['heim3'], 'integer'), 'gastid' => escape($_POST['gast3'], 'integer'), 'date' => makeTimestamp(escape($_POST['date3'], 'string')), 'toreheim' => $heimtore3, 'toregast' => $gasttore3);
$st_array[] = array('spielid' => ($spieltagid * 9) - 5, 'heimid' => escape($_POST['heim4'], 'integer'), 'gastid' => escape($_POST['gast4'], 'integer'), 'date' => makeTimestamp(escape($_POST['date4'], 'string')), 'toreheim' => $heimtore4, 'toregast' => $gasttore4);
$st_array[] = array('spielid' => ($spieltagid * 9) - 4, 'heimid' => escape($_POST['heim5'], 'integer'), 'gastid' => escape($_POST['gast5'], 'integer'), 'date' => makeTimestamp(escape($_POST['date5'], 'string')), 'toreheim' => $heimtore5, 'toregast' => $gasttore5);
$st_array[] = array('spielid' => ($spieltagid * 9) - 3, 'heimid' => escape($_POST['heim6'], 'integer'), 'gastid' => escape($_POST['gast6'], 'integer'), 'date' => makeTimestamp(escape($_POST['date6'], 'string')), 'toreheim' => $heimtore6, 'toregast' => $gasttore6);
$st_array[] = array('spielid' => ($spieltagid * 9) - 2, 'heimid' => escape($_POST['heim7'], 'integer'), 'gastid' => escape($_POST['gast7'], 'integer'), 'date' => makeTimestamp(escape($_POST['date7'], 'string')), 'toreheim' => $heimtore7, 'toregast' => $gasttore7);
$st_array[] = array('spielid' => ($spieltagid * 9) - 1, 'heimid' => escape($_POST['heim8'], 'integer'), 'gastid' => escape($_POST['gast8'], 'integer'), 'date' => makeTimestamp(escape($_POST['date8'], 'string')), 'toreheim' => $heimtore8, 'toregast' => $gasttore8);
$st_array[] = array('spielid' => ($spieltagid * 9) - 0, 'heimid' => escape($_POST['heim9'], 'integer'), 'gastid' => escape($_POST['gast9'], 'integer'), 'date' => makeTimestamp(escape($_POST['date9'], 'string')), 'toreheim' => $heimtore9, 'toregast' => $gasttore9);
Das Updaten der DB wird nun mit einer Fehlermeldung abgebrochen, da, wie auf dem Screenshot zu sehen, in dem Array keine Werte für toreheim und toregast stehen.
Wie gesagt, ich wollte es halt mal probieren mit NULL...ein extra Feld bietet sich hier sicher doch an.
Zuletzt modifiziert von Outi77 am 06.01.2015 - 13:45:17
Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
»Albert Einstein«