Gebruikersnaam: 1 5 6 8 9 8 5
Gebruikersnaam: 3 6 8 4 5 8 2
Er moet dus per regel/line in de tabel een update op mijn database worden uitgevoerd. Mijn formulier heeft per regel allemaal dezelfde naam dus ik maak al gebruik van name="pos_1[]" en dat update ik met een foreach.
Nou weet ik alleen niet goed hoe ik dit met een heleboel regels moet aanpakken. Ik heb iets gemaakt wat wel werkt maar ik gebruik nu een foreach in een foreach in een foreach etc ...
Ik denk gewoon dat dit niet de goede manier is en tevens duurt het laden van de pagina ook heel lang.
Wie kan mij vertellen hoe dit wel moet?
Dit is mijn formulier:
<?php
// Haal warstats op van openstaande war
$SQLSelectWarstats = "SELECT warid, gebruikersnaam, positie, pos_1, a_1, a_1_n, pos_2, a_2, a_2_n, a_v, a_v_s
FROM warstats
WHERE warid = '" . $warid . "'";
$ResultSelectWarstats = $conn->query($SQLSelectWarstats);
// Sla aantal warleden op in variabel
$row_count = $ResultSelectWarstats->num_rows;
// Maak een formulier aan en tabel
echo "<form class='pure-form' method='POST' action='index.php?pagina=war&sub=invullen2'>";
echo "<legend>War invullen:</legend>";
echo "<br/>";
echo "<table class='pure-table invullen'>";
echo "<thead>";
echo "<th></th>";
echo "<th>Gebruikersnaam</th>";
echo "<th>Positie 1e aanval</th>";
echo "<th>Sterren 1e aanval</th>";
echo "<th>Nieuwe sterren 1e aanval</th>";
echo "<th>Positie 2e aanval</th>";
echo "<th>Sterren 2e aanval</th>";
echo "<th>Nieuwe sterren 2e aanval</th>";
echo "<th>Aantal x verdediging gebruikt</th>";
echo "<th>Aantal x verdedigd success</th>";
echo "</thead>";
echo "<tbody>";
while($warstats = $ResultSelectWarstats->fetch_assoc()) {
//Hidden post Warid
echo "<input type='hidden' name='warid' value='" . $warid . "'>";
echo "<tr>";
// Warpositie
echo "<td>" . $warstats["positie"] . "</td>";
// Gebruikersnaam
echo "<td>" . $warstats["gebruikersnaam"] . "</td>";
echo "<input type='hidden' name='gebruikersnaam[]' value='" . $warstats["gebruikersnaam"] . "'>";
// Tel aantal posities 1e aanval
echo "<td><select name='pos_1[]'><option></option>";
foreach (range(1, $row_count) as $number) {
echo "<option>" . $number . "</option>";
}
echo "</select></td>";
// Sterren 1e aanval
echo "<td><select name='a_1[]'><option></option><option>1</option><option>2</option><option>3</option></select></td>";
// Nieuwe sterren 1e aanval
echo "<td><select name='a_1_n[]'><option></option><option>1</option><option>2</option><option>3</option></select></td>";
// Tel aantal posities 2e aanval
echo "<td><select name='pos_2[]'><option></option>";
foreach (range(1, $row_count) as $number) {
echo "<option>" . $number . "</option>";
}
echo "</select></td>";
// Sterren 2e aanval
echo "<td><select name='a_2[]'><option></option><option>1</option><option>2</option><option>3</option></select></td>";
// Nieuwe sterren 2e aanval
echo "<td><select name='a_2_n[]'><option></option><option>1</option><option>2</option><option>3</option></select></td>";
// Aantal x verdediging gebruikt
echo "<td><select name='a_v[]'><option></option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option></select></td>";
// Aantal x verdedigd success
echo "<td><select name='a_v_s[]'><option></option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option></select></td>";
echo "</tr>";
}
echo "</tbody>";
echo "</table>";
echo "<br/>";
echo "<input type='submit' name='updaten' value='Bijwerken'>";
echo "</form>";
?>
En dit wordt zo verwerkt:
<?php
// Maak connectie met db
include ("../connect.php");
// Variabele naar formulier voor redirect
$formpagina = "index.php?pagina=war&sub=invullen";
if (isset($_POST['warid'])) {
foreach ($_POST['pos_1'] as $pos_1) {
foreach ($_POST['a_1'] as $a_1) {
foreach ($_POST['a_1_n'] as $a_1_n) {
foreach ($_POST['pos_2'] as $pos_2) {
foreach ($_POST['a_2'] as $a_2) {
foreach ($_POST['a_2_n'] as $a_2_n) {
foreach ($_POST['a_v'] as $a_v) {
foreach ($_POST['a_v_s'] as $a_v_s) {
foreach ($_POST['gebruikersnaam'] as $gebruikersnaam) {
$SQLUpdateWarstats = "UPDATE warstats
SET pos_1='" . $pos_1 . "',
a_1='" . $a_1 . "',
a_1_n='" . $a_1_n . "',
pos_2='" . $pos_2 . "',
a_2='" . $a_2 . "',
a_2_n='" . $a_2_n . "',
a_v='" . $a_v . "',
a_v_s='" . $a_v_s . "'
WHERE warid='" . $_POST['warid'] . "'
AND gebruikersnaam='" . $gebruikersnaam . "'";
if ($conn->query($SQLUpdateWarstats) === FALSE) {
echo "<div class='error'>MySQL Error 3!! GVD @#$!!!<br/>Raadpleeg een kut beheerder!!</div>";
exit;
}
}
}
}
}
}
}
}
}
}
mysqli_close($conn);
}
?>