Paul Styrnol: Mehrere input-Felder gleichen Namens verarbeiten

Beitrag lesen

Hallo,

ich möchte Auszüge von Datenbankwerten innnerhalb einer Tabelle anzeigen lassen. Dabei soll man allerdings gleich Änderungen vornehmen können, weshalb ich die Tabelle in ein Formular einbinde und jede Tabellenzelle ein input-Feld mit dem entsprechenden Wert enthält:

Auszug (nicht völlständig):
<tr>
  <td><input id="gname" name="gname" value="bla"></td>
  <td><input id="gtitel" name="gtitel" value="blablubb"></td>
</tr>
<tr>
  <td><input id="gname" name="gname" value="blabla"></td>
  <td><input id="gtitel" name="gtitel" value="blablablubb"></td>
</tr>
usw. (Die Tabellenzeilen mit den werten werden jeweils dynamisch erzeugt)

Es sollen in einem Rutsch alle angezeigten Daten geändert und in die Datenbank geschrieben werden können. Nun habe ich allerdings Probleme beim Verarbeiten der Daten, da ich über $_POST[...] immer nur die Daten der letzten Zeile auslesen konnte.
Ich könnte theoretisch auch die Datensatznummer in den Namen einbinden, aber das würde die Sache wahrscheinlich unnötig komplizierter machen, außerdem ist diese nicht immer fortlaufend weshalb sie für das Auslesen der ganzen Werte mittels einer Schleife wohl nicht dienlich wäre.

Da in der Tabelle auch Checkboxen enthalten sind die ich mit Hilfe eines Array im name-Attribut und einer foreach-Schleife verarbeite (so wie hier beschrieben: http://php-faq.de/q/q-formular-checkbox.html).

Mein nächster Versuch basierte auf einem Kommentar zur foreach-Schleife in der PHP-Dokumentation (http://de3.php.net/manual/de/control-structures.foreach.php#53016):

$i = 0;
foreach($_POST as $varName => $value) {
  $dv=$value;
  print 'Variable: ' . $varName . ' Value: ' . $dv[$i] . '<br>';
  $i++;
};

Das ging leider auch schief, zwar wird der Name (gname) der ersten Zeile korrekt ausgegeben, aber der dazugehörige Titel (gtitel) stammt vom folgenden Datensatz. Außerdem werden auch hier nicht alle Werte ausgegeben.

Ich habe auch versucht die Vorgehensweise von anderen Seiten abzugucken, z.B. gibt es my phpmyadmin etwas ähnliches (wenn man mehrer Datensätze einer Tabelle zum Bearbeiten markiert). Aber ehrlich gesagt blick ich nicht wirklich durch bei dem Code, ich bin ewiger PHP-Neuling und das ist dort schon ein wenig komplizierter.

Google hilft mir auch nicht weiter, es gibt zwar jede Menge Ergebnisse zum Verarbeiten von input-Feldern mit PHP, aber speziell zu meinem Problem habe ich leider nichts gefunden.

Hat jemand eine Idee oder einen Lösungsansatz wie ich das Problem lösen könnte?

Viele Grüße
Paul

--
Meine Photos:  http://www.rapunzeln.de