Hallo Forum,
Ich habe ein Formular erstellt, in welchem ich die Ergebnisse eines Spieltages eintrage und in MySQL speicher. Dieses funktioniert soweit auch ganz gut.
Nun möchte ich noch einen Checkbox-Wert übergeben.
Das Problem ist nun, dass nur der Wert 1 aber nicht der Wert 0 übergeben wird.
Ich möchte den Wert 0 übergeben, wenn Checkbox nicht "checked" ist und den Wert 1, wenn Checkbox "checked" ist.
In meinem Beispiel habe ich 8 Spiele pro Spieltag, welche eingegeben werden. Wenn ich nun Checkbox für Spiel 3 und 5 setze, dann wird das Array wie folgt gesetzt:
[Played] => Array ( [0] => 1 [1] => 1 )
Ich hätte aber gerne
[Played] => Array ( [0] => 0 [1] => 0 [2] => 1 [3] => 0 [4] => 1 [5] => 0 [6] => 0 [7] => 0 )
Mein Eingabeformular:
Mein Update-Code:
Die Ausgabe im Browser:
UPDATE
Array (
[SpielID] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 )
[Played] => Array ( [0] => 1 [1] => 1 )
[ErgA] => Array ( [0] => 3 [1] => 3 [2] => 1 [3] => 4 [4] => 5 [5] => 4 [6] => 1 [7] => 1 )
[ErgB] => Array ( [0] => 0 [1] => 0 [2] => 2 [3] => 1 [4] => 6 [5] => 5 [6] => 7 [7] => 1 ) )
In meiner MySQL Datenbank wird im Feld "Played" allerdings nicht Spiel 1 und Spiel 2 mit dem Wert 1 gefüllt, sondern wird Spiel 1 mit dem Wert 2 gefüllt. D.h. das vermutlich die Werte im Array addiert werden. Das verstehe ich aber nicht. Die anderen Werte (SpielID, ErgA, ErgB) werden ja richtig übergeben.
Gruss
Markus
Ergebnis gespeichert!
Ich habe ein Formular erstellt, in welchem ich die Ergebnisse eines Spieltages eintrage und in MySQL speicher. Dieses funktioniert soweit auch ganz gut.
Nun möchte ich noch einen Checkbox-Wert übergeben.
Das Problem ist nun, dass nur der Wert 1 aber nicht der Wert 0 übergeben wird.
Ich möchte den Wert 0 übergeben, wenn Checkbox nicht "checked" ist und den Wert 1, wenn Checkbox "checked" ist.
In meinem Beispiel habe ich 8 Spiele pro Spieltag, welche eingegeben werden. Wenn ich nun Checkbox für Spiel 3 und 5 setze, dann wird das Array wie folgt gesetzt:
[Played] => Array ( [0] => 1 [1] => 1 )
Ich hätte aber gerne
[Played] => Array ( [0] => 0 [1] => 0 [2] => 1 [3] => 0 [4] => 1 [5] => 0 [6] => 0 [7] => 0 )
Mein Eingabeformular:
HTML-Code:
<form id="WMErgebnisse" name="WMErgebnisse" method="post" action="WMErgebnisse.php"> <p> </p> <table border="1"> <tr> <td>wmTeamA</td> <td>wmTeamB</td> <td>wmSpieltag</td> <td>Pl</td> <td>wtTippA</td> <td>wtTippB</td> </tr> <?php do { ?> <tr> <input type="hidden" name="wmErgebnis[SpielID][]" size="1" style="width:40" maxlength="2" value="<?php echo $row_WMErgebnisse['wmSpielID']; ?>" /> <td><?php echo $row_WMErgebnisse['wmTeamA']; ?></td> <td><?php echo $row_WMErgebnisse['wmTeamB']; ?></td> <td><?php echo $row_WMErgebnisse['wmSpieltag']; ?></td> <td><label> <input <?php if (!(strcmp($row_WMErgebnisse['wmplayed'],"1"))) {echo "checked=\"checked\"";} ?> type="checkbox" name="wmErgebnis[Played][]" value="1" id="Played" /> </label></td> <td><input type="text" name="wmErgebnis[ErgA][]" size="1" style="width:40" maxlength="2" value="<?php echo $row_WMErgebnisse['wmToreA']; ?>" /></td> <td><input type="text" name="wmErgebnis[ErgB][]" size="1" style="width:40" maxlength="2" value="<?php echo $row_WMErgebnisse['wmToreB']; ?>" /></td> </tr> <?php /* $checkbox1[] = ((is_null($_POST['checkbox1'])) ? 0 : 1); */ } while ($row_WMErgebnisse = mysql_fetch_assoc($WMErgebnisse)); ?> </table> <input type="submit" name="speichern" id="speichern" value="speichern" /> <p></p> </form>
PHP-Code:
<?php }
/* Warteschleife, bis Tippformular abgesendet wurde */
if (isset($_POST['wmErgebnis']))
{
/* UPDATE CODE */
echo ("UPDATE");
$WMErg=$_POST['wmErgebnis'];
print_r($_POST['wmErgebnis']);
foreach($WMErg['SpielID'] as $key => $dummy)
{
mysql_select_db($database_wm2010, $wm2010);
$updateErg = sprintf("
UPDATE
wmspielplan SET wmToreA=%s, wmToreB=%s, wmplayed=%s
WHERE
wmSpielID=%s",
GetSQLValueString($WMErg['ErgA'][$key], "int"),
GetSQLValueString($WMErg['ErgB'][$key], "int"),
GetSQLValueString($WMErg['SpielID'][$key], "int"),
GetSQLValueString($WMErg['Played'][$key], "int")
);
mysql_query($updateErg, $wm2010);
}
echo ("Ergebnis gespeichert!");
}
UPDATE
Array (
[SpielID] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 )
[Played] => Array ( [0] => 1 [1] => 1 )
[ErgA] => Array ( [0] => 3 [1] => 3 [2] => 1 [3] => 4 [4] => 5 [5] => 4 [6] => 1 [7] => 1 )
[ErgB] => Array ( [0] => 0 [1] => 0 [2] => 2 [3] => 1 [4] => 6 [5] => 5 [6] => 7 [7] => 1 ) )
In meiner MySQL Datenbank wird im Feld "Played" allerdings nicht Spiel 1 und Spiel 2 mit dem Wert 1 gefüllt, sondern wird Spiel 1 mit dem Wert 2 gefüllt. D.h. das vermutlich die Werte im Array addiert werden. Das verstehe ich aber nicht. Die anderen Werte (SpielID, ErgA, ErgB) werden ja richtig übergeben.
Gruss
Markus
Ergebnis gespeichert!
Kommentar