Avatar billede zehrid Nybegynder
14. april 2005 - 14:38 Der er 10 kommentarer og
1 løsning

at indsæte værdier fra en array..

jeg vil gerne gemme værdierne fra et array i en tabel..(arrayet er fra en checkbox)....

hvis jeg skriver (i PHP):
"INSERT INTO tabel1 SET vaerdi1 = '$variabel1',  vaerdi2 =  '$variabel2'

hvor variabel2 er en array, (værdi1 er altså ens hver gang) så får jeg kun en værdi gemt i databasen..

hvad gør jeg ? :\
Avatar billede zehrid Nybegynder
14. april 2005 - 14:39 #1
jeg mente selvfølgeligt "INSERT INTO tabel1 SET variabel1 = '$vaerdi1',  variabel2 =  '$vaerdi2'" :D
Avatar billede barklund Nybegynder
14. april 2005 - 14:42 #2
Altså, $vaerdi2 er et array? Og du skal gemme hele arrayet?

Hvad er det et array af, tal, strenge, noget andet?

Kom med nogle eksempler og lidt kontekst.
Avatar billede zehrid Nybegynder
14. april 2005 - 15:03 #3
ok. værdi2 er et array og værdierne kommer fra en checkbox:

print 'Vælg en eller flere fejlårsager.<br>';
$db->query("SELECT * FROM fejlaarsag");
while ($db->next_record()){
$fejlaarsagid=$db->f(id);
print '<input type="checkbox" name="fejlaarsagid[]" value ="'.$db->f(id).'">&nbsp;'.$db->f(navn).'<br>';
}

...........
på den anden side skriver jeg:

if ($fejlaarsagid)
$fejlaarsag = implode($fejlaarsagid, ", ");

$db1->query("INSERT INTO fejl_mastertegning_aarsager SET fejlmastertegningid = '$fejl_mastertegning_id',  fejlaarsagid =  '$fejlaarsag'");
.........

i databsen får jeg kun enværdi gemt selv om man har vælgt flere checkboxe :( ... men hvis jeg blot skriver :

print $fejlaarsag; så får jeg alle værdierne frem. dvs. der er noget galt med min forspørgsel.. ikk?
Avatar billede barklund Nybegynder
14. april 2005 - 15:08 #4
Lav fejlaarsagid om til at være en streng i stedet for et id. Det er lidt besværligere at hente ud.

du kan også indsætte en række for hver fejlårsag - med samme faste mastertegning_id. Det vil være mere optimalt, men også fylde mere.

--
Morten Barklund
Avatar billede zehrid Nybegynder
14. april 2005 - 15:21 #5
ok hvordan kan jeg indsætte en række for hver fejlårsag... ? :)
Avatar billede zehrid Nybegynder
14. april 2005 - 15:22 #6
Avatar billede barklund Nybegynder
14. april 2005 - 15:33 #7
Lav et loop og lav en indsæt for hver af dem:

foreach($fejlaarsagid as $fejlaarsag) {
    $db1->query("INSERT INTO fejl_mastertegning_aarsager SET fejlmastertegningid = $fejl_mastertegning_id, fejlaarsagid = $fejlaarsag");
}

Så får du masser af rækker i databasen :)

--
Morten Barklund
Avatar billede zehrid Nybegynder
14. april 2005 - 15:36 #8
haha ok selvølgeligt ! takker :) ! send et svar så får du points..
Avatar billede barklund Nybegynder
14. april 2005 - 15:45 #9
Mjææs :)
Avatar billede barklund Nybegynder
14. april 2005 - 15:55 #10
Tark for points :)
Avatar billede zehrid Nybegynder
14. april 2005 - 16:02 #11
tark for svaret :)
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
Computerworld tilbyder specialiserede kurser i database-management

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