Checkbox for-loop forkert indsættelse i MySQL
Hej eksperter,Jeg sidder og døjer med et tilmeldingssystem, hvor det skal være muligt at krydse 2 checkboxes af frivilligt for hver deltager. Det er muligt at vælge antal deltagere, dvs. at checkboxene et lavet som et array. De to checkboxe:
<input type="checkbox" name="DSKYU[]" value="DSKYU1" class="custom-control-input">
<input type="checkbox" name="DFF[]" value="DFF1" class="custom-control-input">
Når det er submittet køre php i samme fil:
if(isset($_POST["tilmeld"])) { // Køres når der er submitted
for($i = 0;$i < $nr;$i++) { // $nr er antallet af deltagere fra 1 til 5.
if(isset($_POST['DSKYU'][$i]) && $_POST['DSKYU'][$i] == "DSKYU1") {
echo "DSKYU1 ER sat<br>";
$dskyucontribution = "50";
} else {
echo "DSKYU1 IKKE sat<br>";
$dskyucontribution = "0";
}
if(isset($_POST['DFF'][$i])&& $_POST['DFF'][$i] == "DFF1") {
echo "DFF1 ER sat<br>";
$dffcontribution = "50";
} else {
$dffcontribution = "0";
echo "DFF1 IKKE sat<br>";
}
if(isset($_POST['DSKYU'][$i]) && $_POST['DSKYU'][$i] == "DSKYU2") {
echo "DSKYU2 ER sat<br>";
$dskyucontribution = "50";
} else {
$dskyucontribution = "0";
echo "DSKYU2 IKKE sat<br>";
}
if(isset($_POST['DFF'][$i])&& $_POST['DFF'][$i] == "DFF2") {
echo "DFF2 ER sat<br>";
$dffcontribution = "50";
} else {
$dffcontribution = "0";
echo "DFF2 IKKE sat<br>";
}
$fornavn = $_POST['fornavn'];
$efternavn = $_POST['efternavn'];
$klub = $_POST['klub'];
$fornavn = $fornavn[$i];
$efternavn = $efternavn[$i];
$klub = $klub[$i];
$arrangementid = $_GET["id"];
$tilmeldingsid = $lastid;
$dato = date("d/m-Y");
$klok = date("H:i:s");
$insert = $conn->prepare("INSERT INTO `deltagerliste` (`fornavn`, `efternavn`, `klub`, `tilmeldingsid`, `arrangementid`, `dato`, `klok`, `dskyu`, `dff`) VALUES (?,?,?,?,?,?,?,?,?)");
$insert->bind_param('sssiissss',$fornavn,$efternavn,$klub,$tilmeldingsid,$arrangementid,$dato,$klok,$dskyucontribution,$dffcontribution);
$insert->execute();
$insert->close();
}
Alt andet virker, udover at der bliver smidt forkert data ind i `dff` og `dskyu`, formentlig pga. for() loopet. Jeg er godt nok i tvivl om hvordan jeg skal smide de rette værdier ind i min sql query. Jeg har også oplevet at hvis man tjekker begge deltagere 2 checkbox af, men lader deltager 1 checkbox stå tomme, så smider den alligevel 50 og 50 ind hos deltager 1 og 0 ind i deltager 2.
Jeg håber der er nogen der kan komme med bud på, hvor den går galt/hvordan det evt. kan løses..
Tak på forhånd
// Henrik