Ik heb een formulier met een listbox en ik wil met item uit de listbox een insert in de database maken.
Maar wanneer mijn Listbox bijvoorbeeld 3 personen bevat wordt de laatste dubbel geplaatst. Dat geld ook als het er 4,5,6 en zelfs 1 zijn.
Eerst heb ik een paar formulier checks en dan kom ik hier:
<?php
// Voorkom SQL Injection
$PostClannaam = mysqli_real_escape_string($conn, $_POST['clannaam']);
$PostLand = mysqli_real_escape_string($conn, $_POST['land']);
// Maak war aan in database
$SQLInsertWar = "INSERT INTO war (naam, land, datum)
VALUES ('" . $PostClannaam . "', '" . $PostLand . "', '" . $newdate . "')";
// Controleer of insert is gelukt
if ($conn->query($SQLInsertWar) === FALSE) {
echo "<div class='error'>MySQL Error!! GVD @#$!!!</div>";
} else {
// Plaats warid in variable
$warid = $conn->insert_id;
// Haal alle gekozen warleden op van formulier
$list2 = $_POST['list2'];
foreach($list2 as $gebruikersnaam)
{
// Plaats warleden in database
$SQLInsertWarLeden = "INSERT INTO warstats (warid, gebruikersnaam)
VALUES ('" . $warid . "', '" . $gebruikersnaam . "')";
$conn->query($SQLInsertWarLeden);
}
// Controleer of insert is gelukt
if ($conn->query($SQLInsertWarLeden) === FALSE) {
echo "<div class='error'>MySQL Error 2!! GVD @#$!!!</div>";
} else {
// Haal de aangemaakte warleden op
$SQLSelectLeden = "SELECT warid, gebruikersnaam
FROM warstats
WHERE warid = '" . $warid . "'";
$ResultWarLeden = $conn->query($SQLSelectLeden);
// Laat de aangemaakte warleden zien
while($row = $ResultWarLeden->fetch_assoc()) {
echo "gebruikersnaam: " . $row["gebruikersnaam"]. "<br>";
}
}
}
?>