Checkbox meerdere keuzes naar MySQL

Status
Niet open voor verdere reacties.

larsojo

Gebruiker
Lid geworden
10 nov 2010
Berichten
213
Hallo Allemaal,

Ik ben bezig met een systeempje maken, waarbij ik een bepaalde functie moet maken; namelijk dat als ik meerdere gegevens selecteer van een checkbox dat die dan in een MySQL tabel worden ingevoegd. tot nu toe heb ik dit:

PHP:
<form method="post" action="#">
<input type="checkbox" name="deelnemers[]" value="1"> 1<br />
<input type="checkbox" name="deelnemers[]" value="2"> 2<br />
<input type="checkbox" name="deelnemers[]" value="3"> 3<br />
<input type="checkbox" name="deelnemers[]" value="4"> 4<br />
<input type="checkbox" name="deelnemers[]" value="5"> 5<br />
<input type="checkbox" name="deelnemers[]" value="6"> 6<br />
<input type="submit" name="submit" value="Aanmelden!" />

<?php
foreach ($_POST['deelnemers'] as $deelnemers) {
	$deelnemers = $deelnemers.', ';
}
?>

Ik heb de checkboxes zo gemaakt dat je er max. 2 kan kiezen. Nu wil ik dat je de elk ID in een aparte kolom kan krijgen in de MySQL tabel, dus zo:

deelnemers:

ID: | ID_1: | ID_2:
----|------|--------
1 | 3 | 5

Zoals je ziet heb ik deelnemer 3 en 5 geselecteerd, en ID is gewoon het ID van de rij.


Wie o wie wilt mij helpen met dit oplossen? :O

Mvg,


Larsojo
 
Normaliseer je tabel zodat je elke geselecteerde optie als een rij kunt opslaan.
Dat maakt alles eenvoudiger omdat je ten eerste niet vast zit aan twee opties, (want het worden er straks toch meer, dat is een gegeven)
en het invoeren en uitlezen wordt een stuk eenvoudiger als je gewoon met een for-lus door de POST data heen kunt lopen en records kunt toevoegen voor elke aangevinkte box.
(let overigens op dat javascript eenvoudig te omzeilen is dus controlleer ook in PHP dat er maximaal twee opties zijn aangevinkt)
 
Als je dit formulier zal versturen ziet je $_POST['deelnemers'] er zo uit:
PHP:
// var_dump($_POST['deelnemers']);
array(
  0 => "3",
  1 => "5"
);
Die waardes kun je dus gewoon in je INSERT-query gebruiken ($_POST['deelnemers'][0] voor 3 en $_POST['deelnemers'][1] voor 5)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan