Dynamische Namen bei Input-Feldern

K

knaecks

Guest
Moin Moin,
Es geht um folgendes:
Für ein Spiel, also einen Fussballmanager benötige ich ein Script, in welches man Ergebnisse eintragen kann je nach dem welche Paarungen grade anliegen.

Ich hole mir also aus der Datenbank die jeweiligen Paarungen zum Spieltag, in diesem Fall erstmal für den ersten Spieltag. Die Ergebnisse sollen in "Eingabe Feldern" als Value dargestellt werden, damit man diese ändern kann.

Durch klicken auf den Submit Button sollten dann alle Felder aktualisiert werden.
Damit ich auch jedes "Eingabe Feld" ansprechen kann müssten sie ja alle unterschiedliche Namen haben.
Also habe ich mir gedacht, setzt du einfach ein $i hinter den Namen und machst um das ganze eine for-Schleife, die i um einen erhöht. So nun bekomme in der Ausgabe logischer Weise jede Paarung 3 Mal.

spieler 1 gegen spieler 2 - 2 zu 1 --> der Name der Inputfelder ist hier 1
spieler 1 gegen spieler 2 - 2 zu 1 --> hier 2
spieler 1 gegen spieler 2 - 2 zu 1 --> 3

spieler 3 gegen spieler 4 - 2 zu 1 --> 1
spieler 3 gegen spieler 4 - 2 zu 1 --> 2
spieler 3 gegen spieler 4 - 2 zu 1 --> 3

spieler 5 gegen spieler 6 - 2 zu 1 --> 1
spieler 5 gegen spieler 6 - 2 zu 1 --> 2
spieler 5 gegen spieler 6 - 2 zu 1 --> 3

Er geht die While Schleife so oft durch wie Daten in der DB sind und jedes Mal geht er 3 Mal die for-schleife durch. Also bei 3 Paarungen in der DB gibt er 9 Paarungen aus.

Kann mir jemand helfen? und mir erklären wie ich die Namen der Input Felder dynamisch hinbekomme, so dass er nicht jede Paarung 3 mal Ausgibt?

CODE

$result = mysql_query("SELECT * FROM dfb_paarungen WHERE spieltag = 1");
while($row = mysql_fetch_array($result))
{
$spieler1 = $row[Spieler1];
$spieler2 = $row[Spieler2];
$spieltag = $row[Spieltag];
$tore = $row[Tore];
$gegentore = $row[Gegentore];
$gruppe = $row[Gruppe];

for ($i=1; $i<4; $i++)
{
echo "
<form action=\"saveeingabe.php\" method=\"post\">

<table>
<tr>
<td width=\"150\">",$spieler1," gegen ",$spieler2,"
</td>
<td><input type=\"text\" size=\"3\" name=\"tore",$i,"\" value=\"",$tore,"\"> :
<input type=\"text\" size=\"3\" name=\"gegentore",$i,"\" value=\"",$gegentore,"\"><br>
</td>
</tr>
</table>";
}



}

echo "<input type=\"submit\" value=\"Änderungen speichern\"></form>";





Ich hoffe man versteht mein Problem?! Ich find es immer so schwierig sowas zu formulieren. Also bitte Nachsicht haben und wenn etwas unklar ist einch Fragen....

Vielen Dank
smile.gif
 
Versuch mal, die Namen ähnlich "feldname[]" zu verwenden, dann werden die einzelnen Einträge in ein Array gespeichert, welches du danach einfach auswerten kannst. Vielleicht bringt dich das weiter.
 
hey, also ich würde entweder

1. für jedes feld ein eigenes formular wählen, ist aber unsinnig, weil man dann immer speichern müsste

oder 2. ganz einfach nach jedem while-durchgang die variable eins hoch zähle, so bekommst du das auch hin!

das sieht dann so aus:

CODE

echo "<form action=\"saveeingabe.php\" method=\"post\">"

$result = mysql_query("SELECT * FROM dfb_paarungen WHERE spieltag = 1");
$i = 1;
while($row = mysql_fetch_array($result))
{
$spieler1 = $row[Spieler1];
$spieler2 = $row[Spieler2];
$spieltag = $row[Spieltag];
$tore = $row[Tore];
$gegentore = $row[Gegentore];
$gruppe = $row[Gruppe];

echo "

<table>
<tr>
<td width=\"150\">",$spieler1," gegen ",$spieler2,"
</td>
<td><input type=\"text\" size=\"3\" name=\"tore",$i,"\" value=\"",$tore,"\"> :
<input type=\"text\" size=\"3\" name=\"gegentore",$i,"\" value=\"",$gegentore,"\"><br>
</td>
</tr>
</table>";

$i++;
}

echo "<input type=\"submit\" value=\"Änderungen speichern\"></form>";




ich programmiere selber nicht in PHP, das müsste abe eigentlich so klappen, zumindest sollte es dir veranschaulichen, wie ich es gemeint habe und ich das sonst löse! so wird nämlich jeder nur einmal ausgegeben und die felder werden so zugeordnet:

spiel1: tore1
spiel2: tore2
spiel3: tore3
usw.

hoffe, das klappt so, viel glück, grüsse roman
 
Zurück
Oben