Mailinglisten-Archive |
Hallo, brauche Hilfe bei einem Formular, das mehrere Datensaetze aus einer Datenbank ausgibt, deren Werte man aendern kann, oder wenn man eine Checkbox anklickt den ganzen Datensatz loeschen koennen soll. Wenn das Formular abgeschickt wird, sollen die Aenderungen in die Datenbank geschrieben werden bzw. die markierten Datensaetze geloescht werden. Ersteres laeuft, wenn auch schlecht, letzteres kriege ich gar nicht hin. Der Code im Formular sieht so aus: while($zeile=mysql_fetch_row($result)) { echo "<tr>\n"; echo "<td bgcolor=\"#000000\" valign=\"top\"><input type=\"text\" size=\"24\" maxlength=\"24\" name=\"Feld1[]\" value=\"" . $zeile[0] . "\"></td>\n"; echo "<input type=\"hidden\" name=\"Feld2[]\" value=\"" . $zeile[1] . "\">\n"; echo "<td bgcolor=\"#000000\"><input type=\"checkbox\" name=\"loeschen\" value=\"\" unchecked> löschen</td>\n"; echo "</tr>\n"; } Im Zielformular kriege ich auch die beiden Arrays aus Feld1 und Feld2. Ich arbeite sie ungefaehr so ab: $Feld1 = $_POST['Feld1']; $Feld2 = $_POST['Feld2]; $ArrayLaenge = count($Feld1); for ($i=0; $i<$ArrayLaenge; $i++) { $Feld1_aktuell = $Feld1[$i]; $Feld2_aktuell = $Feld2[$i]; $sql = "UPDATE tabelle1 SET Feld1 = '" . $Feld1_aktuell . "'" . " WHERE Feld2 = '" . $Feld2_aktuell . "'"; mysql_query($sql, $verbindung); } Das funktioniert, wenn ich alle Werte aus Feld1 im Formular neu gesetzt habe, es funktioniert auch, wenn ich nur den ersten Wert aendere. Es funktioniert nicht mehr, wenn ich nur den letzten Wert aendere. Warum? - Ich moechte, dass es immer den Datensatz oder die Datensaetze aendert, wo ein neuer Wert eingetragen wird, und alle anderen einfach so bleiben bzw. mit demselben Wert ueberschrieben werden. Und ganz auf dem Schlauch stehe ich, wenn ich nun vorher alle Datensaetze, die im Formular mit "loeschen" markiert sind, geloescht haben moechte. Die anderen sollten danach noch durch die Aktualisierung laufen. Bin dankbar fuer jede Hilfe! Gruesse Friederun Goellner
php::bar PHP Wiki - Listenarchive