Avatar billede lborkdk Nybegynder
23. oktober 2011 - 16:42 Der er 14 kommentarer og
1 løsning

mange checkboxe data i samme mysql felt

Hej eksperten

Jeg er ved at lave en hjemmeside og er stødt ind i et problem :)

Jeg får php til at hente data fra en database og lave en checkbox for hver række i tabellen.

Del af min kode:

<?php
$result = mysql_query("SELECT * FROM MINTABEL");
while ($row = mysql_fetch_array($result)) {?><tr><td>
<?php echo($row['name']); ?> -
<?php echo($row['info']); ?> |
<input type="checkbox" name="<?php echo($row['name']); ?>" value="<?php echo($row['name']); ?>" />
</td></tr>
<?php        }?>


Nu er mit spørgsmål så når folk trykker send i min form hvordan får jeg så lagt de afkrydsede felter ind i min database og kun de afkrydsede :)
Avatar billede majbom Novice
23. oktober 2011 - 19:01 #1
du henter én række pr. checkbox? og du vil kun have de rækker tilbage i databasen hvor checkboxen er checked?

jeg er ikke helt med hér - kan du uddybe / omformulere ?
Avatar billede kiksen1987 Novice
23. oktober 2011 - 19:14 #2
Hej. Når jeg skal bruge noget i en checkbox som True / False som du har der.
Så plejer jeg at bruge det der i MSSQL hedder BIT.
en bit den kan være 1 eller 0.
dvs hvis noget er sandt / findes sætter jeg den til 1 og hvis den ikke er afkrydset eller findes sætter jeg den til 0
1 = true = afkrydset.
0 = false = ikke afkrydset.

håber det her gav mening :)
Avatar billede kiksen1987 Novice
23. oktober 2011 - 19:23 #3
Ps. Hvis du bruger min måde skal du gemme alle dem som ikke er krydset af
f.eks.

TableInteresser:
Drame bit,
TV bit,
Computer bit,
Natur bit,
osv bit

dvs når en bruger godt kan lide TV og Computer,
så gemmer du 0,1,1,0,0.
dvs du får en for hver. Dette vil jeg helt klart mene er den bedste løsning
Avatar billede olebole Juniormester
23. oktober 2011 - 19:23 #4
<ole>

Du kan bruge bit shifting. Så kan du rumme værdien af omkring 30 checkboxe i én integer - som så kan indsættes i ét felt.

Jeg er på vej ud af døren, men hvis du har problemer med at finde ud af det, prøver jeg at lægge et eksempel, når jeg kommer hjem igen  =)

/mvh
</bole>
Avatar billede lborkdk Nybegynder
23. oktober 2011 - 19:32 #5
Tak for svarene :)

Jeg har selv fundet ud af følgende:

$cbox = $_POST['cbox'];
$selected_cbox = "";
foreach($cbox as $cbox) {
$selected_cbox .= $cbox . ", ";
}
$selected_cbox = substr($selected_cbox, 0, -2);

.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

<?php
$result = mysql_query("SELECT * FROM programmer");
while ($row = mysql_fetch_array($result)) {?>
<tr><td>
<?php echo($row['name']); ?> -
<?php echo($row['info']); ?> |
<input type="checkbox" name="cbox[]" value="<?php echo($row['name']); ?>" />
</td></tr>
<?php        }?>

Når jeg gør det på den måde så får jeg de afkrydsede ind i mit felt men jeg får også en foreach() fejl selvom det virker.

Fejlen:
Warning: Invalid argument supplied for foreach() in *** on line ***

Og jeg kan også kun checke to boxe af ellers kommer de ikke ind
Avatar billede lborkdk Nybegynder
23. oktober 2011 - 19:34 #6
Når jeg gør det på den måde så får jeg checkboxenes value ind i databasen og det er det jeg ønsker :)
Avatar billede majbom Novice
23. oktober 2011 - 19:40 #7
super, husk at luk tråden...
Avatar billede olebole Juniormester
23. oktober 2011 - 19:45 #8
Hvis det er nok for dig, så er det okay med mig  =)
Avatar billede lborkdk Nybegynder
23. oktober 2011 - 19:49 #9
Jamen jeg får ju en fejl?
Hvorfor gør jeg det
Avatar billede olebole Juniormester
23. oktober 2011 - 19:51 #10
Fordi, du gør noget forkert. Prøv at begave os andre med indblik i, hvad fejlen fortæller dig
Avatar billede lborkdk Nybegynder
23. oktober 2011 - 19:53 #11
Er der ikke nogen der har en løsning der virker på at få checkboxenes value ind i database feltet så der står i database feltet fx. biler, både, cykkler, tv, radio, osv.

Mange tak :)
Avatar billede lborkdk Nybegynder
23. oktober 2011 - 19:54 #12
Et eksempel måske, det ville være rigtigt fint :)
Avatar billede olebole Juniormester
23. oktober 2011 - 20:01 #13
Du fandt en tilfredsstillende løsning. Den gav fejl, og du spurgte, hvorfor. Vil du have det svar, må du være lidt informativ (læs #10)
Avatar billede lborkdk Nybegynder
23. oktober 2011 - 20:05 #14
LUKKER.

Smid et svar
Avatar billede lborkdk Nybegynder
24. oktober 2011 - 18:39 #15
.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester