03. november 2009 - 07:33Der er
16 kommentarer og 1 løsning
insert væardier fra flere checkboxe til et felt?
Jeg har en form med 50 checkbokse og for ikke at skulle oprette 50 felter i databasen vil jeg gerne kunne opdatere værdien af dem der bliver checked i et felt i databasen. Jeg har googlet lidt og set at det kan lade sig gøre, men bare ikke fundet løsningen. Jeg bruger asp så kunne man ikke lave en variabel ud af alt der er checked i formen, - ? eller en anden løsning
umiddelbart ville jeg ikke mene at nogle af de to løsninger er særlig optimale - den rigtige løsning lyder til at være en mange-til-mange tabel, altså en ekstra tabel hvor der indsættes en række for hver aftjekkede værdi.
skal jeg forstå det sådan, at man ikke kan lave en insert into felt1 values fra checkbox1, checkbox2 osv, så der i felt1 kommer til at stå f.eks 1,2,3,5,9,35,
Du skal bare bruge den binære værdi. Jeg har brugt det nogle gange til at repræsentere ugedage. Den første checkbox er den første bit osv. Alle unchecked 0, alle checked 1. 00101010100101010101010101010101010101010101010... Alle dine tal vil altså være 50 bit lange. Det smarte ved det er at du kan lave f.eks XOR behandlinger af dine data.
Glemte lige at sige at du gemmer det bare som integer i basen, og konverterer når du skal bruge det: 0000001110 gemmer du bare som 14. Dvs. at 2. 3. og 4. checkbox var checked.
Det er da også rigtigt. Du kan evt. splitte dine svar lidt op hvis der er en form for gruppering blandt alle dine checkboxe. Så skal maskinen ikke regne med helt så store tal.
Ja, det er i hvert fald noget rod for den udvikler som måske skal bygge videre på det i fremtiden ... og så hvis dokumentationen omkring det ikke er at finde ... irk :-s
positionen af din bitmask er jo repræsenteret på en eller anden måde i dine checkboxes, det behøver absolut ikke at være den rækkefølge at de bliver postet i dit html request. Du kalde satgens registrer dem efter deres navn som kunne være et nummer. Du tænker endimensionelt.
en ting er hvad man kan - en anden ting hvad der er praktisk. Løsningen med en "bitmask" er overordentlig svær at dokumentere, den kan være svær at forespørge på og kan for en evt ny udvikler være vanskelig at vedligeholde - hvorimod en rigtig databaseløsning ikke falder på nogle af de ting. Det gode af det hele er at det ikke tager længere tid at udvikle - derfor kan jeg til stadighed ikke forstå hvorfor bitmask-løsningen stadig bliver diskuteret.
Keysersoze - kan du udvide min horisont lidt mere med din løsning. Skal den ekstra tabel indeholde et felt for hver checkboks og hvordan kan man lave en forespørgsel ind i den. på et tidspunkt vil jeg f.eks gerne vide hvormange gange checkboks nr. 7 er anvendt?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.