Hallo zusammen,
Problem: Ich erstelle ein Formular mit Hilfe einer For-Schleife. Anschließend wenn der Benutzer die Daten einträgt, sollen die Daten entsprechend per UPDATE in die Datenbank geschrieben werden
Formular:
SQL UPDATE:
Wenn ich die Datenbankgeschichte weglasse in der unteren Schleife, dann gibt er mir alle Datensätze aus, die ich ausgewählt habe mit der checkbox.
Sonst updated er mir nur den ersten Eintrag - es scheint so als ob er aus der schleife rausspringt nach dem ersten Eintrag und nicht wieder reingeht - er macht danach nicht mal mehr eine ausgabe.
Bin ziemlicher Anfänger und hoffe, dass mir jmd auf die Sprünge helfen kann.
Vielen Dank schonmal
Gruß simay
Problem: Ich erstelle ein Formular mit Hilfe einer For-Schleife. Anschließend wenn der Benutzer die Daten einträgt, sollen die Daten entsprechend per UPDATE in die Datenbank geschrieben werden
Formular:
PHP-Code:
<?php
error_reporting(E_ALL);
require_once ('konfiguration.php');
$db_link = mysql_connect(MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);
mysql_select_db(MYSQL_DATENBANK) or die("Auswahl der Datenbank fehlgeschlagen");
$sqlab = "SELECT Vname, Nname FROM spielerakt";
// MySQL-Anweisung ausführen lassen
$erg = mysql_query($sqlab) or die("Anfrage fehlgeschlagen: " . mysql_error());
$num = mysql_num_rows($erg);
echo "$num Datensätze gefunden<br><br>";
mysql_query($sqlab);
for ($i = 0; $i < $num; $i++) {
$nn = mysql_result($erg, $i, "Nname");
$vn = mysql_result($erg, $i, "Vname");
//umlaute etc.
$nn = htmlentities($nn);
$vn = htmlentities($vn);
echo "<tr><td><input type=\"checkbox\" name=\"bool$i\" value=\"1\"</td>" .
"<td><input readonly name=\"vname$i\" value=\"$vn\" size=\"14\"/></td>
<td><input readonly name=\"nname$i\" value=\"$nn\" size=\"14\"/></td>
<td><select name=\"tore$i\" size=\"1\">
<option value=\"0\">0</option>
<option value=\"1\">1</option><option value=\"2\">2</option><option value=\"3\">3</option>
<option value=\"4\">4</option><option value=\"5\">5</option><option value=\"6\">6</option>
<option value=\"7\">7</option><option value=\"8\">8</option><option value=\"9\">9</option>
</select></td>
<td><select name=\"min$i\" size=\"1\">
<option value=\"0\">0</option>
<option value=\"5\">5</option><option value=\"10\">10</option><option value=\"15\">15</option>
<option value=\"20\">20</option><option value=\"25\">25</option><option value=\"30\">30</option>
<option value=\"35\">35</option><option value=\"40\">40</option><option value=\"45\">45</option>
<option value=\"50\">50</option><option value=\"55\">55</option><option value=\"60\">60</option>
<option value=\"65\">65</option><option value=\"70\">70</option><option value=\"75\">75</option>
<option value=\"80\">80</option><option value=\"85\">85</option><option value=\"90\">90</option>
</select></td>
<td><select name=\"vorlagen$i\" size=\"1\">
<option value=\"0\">0</option>
<option value=\"1\">1</option><option value=\"2\">2</option><option value=\"3\">3</option>
<option value=\"4\">4</option><option value=\"5\">5</option><option value=\"6\">6</option>
<option value=\"7\">7</option><option value=\"8\">8</option><option value=\"9\">9</option>
</select></td>
<td><select name=\"gelb$i\" size=\"1\">
<option value=\"0\">0</option>
<option value=\"1\">1</option>
</select></td>
<td><select name=\"gelbrot$i\" size=\"1\">
<option value=\"0\">0</option>
<option value=\"1\">1</option>
</select></td>
<td><select name=\"rot$i\" size=\"1\">
<option value=\"0\">0</option>
<option value=\"1\">1</option>
</select></td>";
}
mysql_close($db_link);
?>
<td><input type="submit" name="gesendet" value="abschicken" /></td></tr>
</table>
</form>
PHP-Code:
<?php
if (array_key_exists('gesendet', $_POST)) {
for ($k = 0; $k < $num; $k++) {
if (array_key_exists("bool$k", $_POST)) { //falls checkbox angeklickt
$min[$k] = $_POST["min$k"];
$tore[$k] = $_POST["tore$k"];
$vname[$k] = $_POST["vname$k"];
$nname[$k] = $_POST["nname$k"];
$vorlagen[$k] = $_POST["vorlagen$k"];
$gelb[$k] = $_POST["gelb$k"];
$gelbrot[$k] = $_POST["gelbrot$k"];
$rot[$k] = $_POST["rot$k"];
echo $vname[$k] . " " . $nname[$k] . " " . $tore[$k] . " " . $min[$k] . " " . $vorlagen[$k] . " " . $gelb[$k] . " " . $rot[$k] . " " . $gelbrot[$k] . "<br>";
//Trage DS ein
error_reporting(E_ALL);
require_once ('konfiguration.php');
$db_link1[$k] = mysql_connect(MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);
mysql_select_db(MYSQL_DATENBANK) or die("Auswahl der Datenbank fehlgeschlagen");
$sqlq[$k] = "update spielerakt set Minuten=Minuten+'$min[$k]', " .
"Spiele=Spiele+1, Tore=Tore+'$tore[$k]', Vorlagen=Vorlagen+'$vorlagen[$k]'," .
" Gelb=Gelb+'$gelb[$k]', Gelbrot=Gelbrot+'$gelbrot[$k]', " .
"Rot=Rot+'$rot[$k]' WHERE Vname='$vname[$k]' AND Nname='$nname[$k]'";
mysql_query($sqlq[$k]);
$num = mysql_affected_rows();
mysql_close($db_link1[$k]);
if ($num > 0)
echo "Es wurde 1 Datensatz hinzugefügt.";
else {
echo "Es ist ein Fehler aufgetreten, ";
echo "es wurde kein Datensatz hinzugefügt";
}
} else { //checkbox nicht angeklickt
echo "<hr>";
}
}
}
?>
Sonst updated er mir nur den ersten Eintrag - es scheint so als ob er aus der schleife rausspringt nach dem ersten Eintrag und nicht wieder reingeht - er macht danach nicht mal mehr eine ausgabe.
Bin ziemlicher Anfänger und hoffe, dass mir jmd auf die Sprünge helfen kann.
Vielen Dank schonmal
Gruß simay
Kommentar