Ik wil een rijtje categorieen presenteren als checkboxes. Dit zodat iemand bij het invoeren van een nieuw product kan besluiten dat dit in meerdere categorieen thuishoort.
Ik heb nu het volgende:
<?php
$sql = "SELECT * FROM categorieen ORDER BY categorie_naam ASC";
$result = mysql_query($sql);
if ($result && mysql_num_rows($result) > 0) {
echo "<p>";
while ($categorie = mysql_fetch_assoc($result)) {
echo "<input type=\"checkbox\" name=\"categorie\" class=\"normal\"> " . $categorie['categorie_naam'] . " ";
}
echo "</p>";
}?>
en nu verschijnen de beschikbare categorieen met een checkbox ervoor...Alleen wanneer ik de nieuwe invoer helemaal afhandel blijkt de categorie leeg te zijn. Ook wanneer je maar 1 checkbox aanvinkt.
Ik deed dit eerst met een <option> gebeuren, maar daar kon je er dus maar eentje selecteren (en ja, ik weet dat er <option> mogelijkheden zijn om meerdere selecties tegelijkertijd te maken).
Maar momenteel worden de checkboxes voorzien van een categorie_naam die uit de database word gehaald. Komen er dus meer categorieen bij, verschijnen er ook steeds meer checkboxes.
Hoe doe je dit dan wanneer elke checkbox een eigen naam heeft?
[quote='Robert_Deiman schreef op 20.01.2009 12:54']Ik gebruik voor checkboxes die voor hetzelfde doeleinde dienen (zoals hier, waar het allemaal om categorieën gaat) altijd dezelfde naam:
Dat is een array(), dat kan uiteraard ook.[/quote]
Klopt inderdaad een array, ik dacht zo dat het in dit geval toch de handigste oplossing was.. Je kan heel makkelijk van alles controleren en toevoegen in een database binnen een foreach. Scheelt in elk geval een stuk code..
Wat mij in het geheel ontgaat is het database gedeelte.
Waneer er meerdere categorieen zijn voor 1 product...Dan moeten er in de database toch 'extra' tabellen worden aangemaakt om alle categorieen in kwijt te kunnen?
Nu is er bv. maar ruimte voor 1 categorie_id per product_id...Als er dus 2 categorie_id's zouden zijn waar komt deze 2e categorie_id dan te staan?
Oftewel, in de categorie tabel heb je een kolom nodig die de "parent-id" van de bovenliggende categorie nodig hebt. Dat kan ook, maar een product kan zich ook prima in meerdere categorieën bevinden.
Stel (hypothetisch) dat je een bepaald product verkoopt, welke je naast een mp3-speler ook (via de usb-aansluiting van de computer) als extern geheugen (heeft ook vast intern geheugen) en kaartlezer kan gebruiken.
De categorieën waarin die Kán staan (niet Moét staan) zijn dan dus kaart-lezers, flash-drives en mp3-spelers de categorieën voor dat product. Geen van deze categorieën is een "subcategorie" van één van de andere genoemde apparaten.
Om dit te kunnen doen heb je een koppeltabel nodig.