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