Hoi allemaal,

Voor een script maak ik gebruik van categorieen dmv een checkbox. Deze wil ik opslaan in een array, en de array in de database plaatsen. Ik heb een formulier met checkboxen en de name: cat. Hoe kan ik deze uitlezen van degene die selected zijn? Ik heb het met een foreach geprobeerd maar krijg dan invalid foreach().

groeten
In je $_POST['veld'] staat een array van je selectie, zolang je name="veld[]" gebruikt.
Waarom plaats je ze eerst in een array en niet gelijk in je DB middels een query?

Checkbox heeft alleen een waarde 0 of 1, dus checked of niet gechecked. Aan de hand van de name kun je ze dus juist in je db wegschrijven.

Maar als je een array hebt, kun je deze toch gewoon met een for each uitlezen?
Wat krijg je te zien als je de array afdrukt met print_r();?
Dankjewel aar :)

Wat ik nu heb is dat ik in de foreach de categorieen ophaal op de volgende manier:
<?php
if (isset($_POST['aanmelden'])){
$cat = array();
foreach ($_POST['cat'] AS $cat[]){
//Ophalen en komma's plaatsen
$cat;
}

echo 'Implode: '.implode($cat);
}
?>

Nu wil ik nog komma's ertussen plaatsen. Ik weet hoe dat moet, alleen weet ik niet hoe de laatste komma weg moet halen. Nu krijg ik als resultaat: 1,2,3, maar wil: 1,2,3. Hoe lost ik dit op? Ik dacht zelf aan strlen, en dan het laatste karakter weg filteren

[size=xsmall]Toevoeging op 10/06/2013 18:01:08:[/size]

@chris: ik wil maar 1 insert queries, en niet voor elke categorie 1
<?php
$sql = 'INSERT INTO categories (cat_id) VALUES (' . 
	implode('),(', $_POST['cat']) . ')';
?>

Wel even met bv array_map de boel beveiligen.
Oke, nu heb ik meerdere resultaten in mn database:
ID 1: 1, 3, 9, 15
ID 2: 2, 3, 8, 12

Welke query moet ik uitvoeren om alle IDs te bekijken die een bepaalt getal hebben?

[size=xsmall]Toevoeging op 10/06/2013 18:39:09:[/size]

Ik dacht zelf aan de SQL functie LIKE
Neeee!
Dit sla je afzonderlijk rijen op in de tabel, niet in één kolom.
Dus je hebt kolom id en getal
En dan
1,1
1,3
1,9
1,15
2,2
etc.
Zoals jij het doet heb je nul komma nul normalisatie
Ger van Steenderen op 10/06/2013 18:47:43

Neeee!
Dit sla je afzonderlijk rijen op in de tabel, niet in één kolom.
Dus je hebt kolom id en getal


Dat heb ik... Ik heb een kolom met s_id en een kolom met het getal.

----------------
|ID  | GETAL   |
----------------
|1   |1,2,4,9  |
|2   |4,6,8,12 |
|3   |1,6,8    |
----------------

Dat is wat je bedoeld toch Ger?
Nee, wat jij hebt hoort juist niet.
Je hebt dan twee velden:
ID en Getal

Daarbij is ID niet uniek, dus kan je meerdere dezelfde ID's hebben met een verschillend getal:


----------------
|ID  | GETAL   |
----------------
|1   |1        |
|1   |2        |
|1   |4        |
|1   |4        |
|2   |4        |
|2   |6        |
---------------- 

Op deze manier kan je heel makkelijk rekenen, groeperen en sorteren in MySQL.
Nee dat bedoel ik nu juist niet.
Ik heb het net al proberen uitleggen, je krijgt voor elke id net zoveel rijen in je tabel als ie getallen heeft. je hebt nl een meer op meer relatie tussen getal en id

Reageren