Moin!
Wenn ich aber sage, Schröder hat 10 Minuten gespielt und Schmidt (id=6) 20 Minuten, dann addiert er bei Schröder und Schmidt jeweils 30 Minuten dazu. Anstatt zeit[5]=10 und zeit[6]=20, schreibt er also jeweils 30 in die Tabelle. Ich verstehe ainfach nicht, warum die beiden Werte zusammenaddiert werden. Ich denke mal, irgendwas mach ich mit den Arrays falsch.
Könnte durchaus sein, denn:
> if(@trim($_POST['zeit'][$key]) == "") {
> else {
> foreach ($_POST['zeit'] as $key => $wert) {
> }
> }
Im if fragst du einen bestimmten Key ab - und wenn der nicht leer ist (übrigens eine schlechte Art, die Notice für "undefines index" abzufangen, ist das @ - benutze isset() als Funktion, und frage das separat), dann gehts du ins else und arbeitest mit dem _gesamten_ Array $_POST['zeit'], nicht nur mit diesem Key.
Das kann irgendwie nicht so ganz hinkommen von der Logik her. Entweder ist $key als Variable vor dem if nicht benutzt - dann ist das if falsch. Oder $key ist benutzt - dann ist es im foreach fehlplatziert und bringt deine äußere Schleife durcheinander.
Jedenfalls ist erstens mehr Code notwendig, und zweitens eine Debug-Ausgabe! Schreibe jeden generierten SQL-Code auf den Bildschirm, sowohl im if, als auch im else. Dann siehst du, welche Aktualisierungen stattfinden sollen, und findest vielleicht heraus, dass gar nicht 10 + 20 gerechnet wird, sondern dass die 10 Minuten vielleicht dreimal addiert werden.
- Sven Rautenberg
My sssignature, my preciousssss!