Avatar billede neeesn Nybegynder
28. juli 2005 - 15:03 Der er 15 kommentarer og
1 løsning

Array i Mysql

Hi Jungs

Hvordan får jeg et array ind i min mySql database?
Jeg vil gerne have noget ligende det her ind i databasen:
$a_kat = array ($kat_1,$kat_2,$kat_3,$kat_4,$kat_5,$kat_6,$kat_7,$kat_8,$kat_9,$kat_10);

Men når jeg smider variablen $a_kat ind i min mySql db, og jeg  trækker den ud igen, siger den bare Array. og hvis jeg kigger inde i databasen, hvor den er indsat, så står der også bare Array.

Kan i hjælpe ?
Avatar billede taskmgr Nybegynder
28. juli 2005 - 15:10 #1
Hvis de bare skal være adskilt med et komma i dit felt, så kan du bruge implode().

$a_kat = array ($kat_1,$kat_2,$kat_3,$kat_4,$kat_5,$kat_6,$kat_7,$kat_8,$kat_9,$kat_10);
$input = implode(",",$a_kat);
Avatar billede nielle Nybegynder
28. juli 2005 - 15:10 #2
Du kan eventuelt gemme på denne måde:

INSERT INTO dinTabel (ditFelt) VALUES(' . implode(",", $a_kat) . "')"
Avatar billede neeesn Nybegynder
28. juli 2005 - 16:44 #3
ok men hvad så når jeg skal have dem ud igen, og teste på hver enkel.

Det er fordi jeg relatere en vare til forskellige kategorier, kategorierne kommer så ind med et Id (tal), men jeg skal også kunne teste på hver enkel kategori om der er tilknyttet en vare....

Hele min sql ser således ud:

$strsql = "INSERT INTO `vare_menu` (
        `id`,
        `vare_id`,
        `kat_1`,
        `men_1`
    )VALUES
        ('',
        '$vare_nummer',
        '$a_kat',
        '$men_1 men $men_2  men $men_3  men $men_4  men $men_5 men  $men_6  men $men_7  men $men_8  men $men_9  men $men_10')";
       
echo $strsql."<br>";
       
$rs = &$conn->Execute($strsql);
        }
       
Hvor vare_id er varen, a_kat skulle være de kategorier den er tilknyttet til, men_ er undermenuer, hvis man ønsker det (den skal også laves til et array, så man kan vælge mere end 10)
Id er auto_incriment i tabellen og resten af felterne er af type text, ville det gøre nogen forskelv hvis jeg lavede dem om til eks . Blop ?
Avatar billede taskmgr Nybegynder
28. juli 2005 - 16:54 #4
Lav en seperat tabel hvor du laver tilknytningerne mellem kategorier og varer.
Avatar billede neeesn Nybegynder
28. juli 2005 - 21:12 #5
Det er også det jeg gør. - Jeg har varen i en tabel og relationenerne i en anden, samt kategorier og menuer i en 3 og 4 tabel
Avatar billede taskmgr Nybegynder
28. juli 2005 - 21:29 #6
Ok. Men du skriver: "a_kat skulle være de kategorier den er tilknyttet til".

Burde du ikke have de informationer i relationstabellen?
Avatar billede neeesn Nybegynder
28. juli 2005 - 21:54 #7
det er det jeg mener oppe i starten, der lægger jeg $kat_1, $kat_2 osv ind i arrayén  - dem vælger jeg ved hjælp at tjek boxe.

det jeg ikke kan finde ud af er at gemme arrayen, i en mysql tabel, så den kun optager 1 record, og ikke en for hver kategori den er tilknyttet til.
Avatar billede taskmgr Nybegynder
28. juli 2005 - 22:07 #8
Ok. Dem skal du jo så smide ind i din relationstabel.
Jeg ved ikke helt hvordan dine data ser ud, men her er lidt "semi-pseudo" kode.

$vareID = 22;
foreach($a_kat as $key => $value){
  mysql_query("INSERT INTO vareTilKategori (´vare_id´,´kategori_id´) VALUES ('".$vareID."','".$value.")");
}
Avatar billede taskmgr Nybegynder
28. juli 2005 - 22:08 #9
Der mangler lige en ' før 2. sidste parantes.
Avatar billede neeesn Nybegynder
28. juli 2005 - 23:34 #10
Vil det eksempel så ikke lægge en Record i databasen, for hver $a_kat ?
Avatar billede neeesn Nybegynder
28. juli 2005 - 23:42 #11
I det første eksempel du har lavet med implode af $kat_1, $kat_2, osv, kan man de explode dem ud igen i eksempelvis $kat_1, $kat_2 igen?
Avatar billede taskmgr Nybegynder
29. juli 2005 - 13:08 #12
23:34:26
Jo, det er også meningen.

23:42:02
Du svarer selv på dit spørgsmål :)

$a_kat = implode(",", $a_kat);
$a_kat = explode(",", $a_kat);
Avatar billede neeesn Nybegynder
29. juli 2005 - 15:32 #13
så må jeg prøve at se om det virker - jeg har imidlertid sat en grænse på 10 relationer, og har hardkodet det, så må jeg prøve med det andet senere -- tak for hjælpen
Avatar billede neeesn Nybegynder
29. juli 2005 - 15:35 #14
S å lige en lille ting mere -- hvordan giver jeg dig de 15 point--- er helt grøn i det her system, og jeg er ikke helt sikker på hvordan det lige virker...
Avatar billede taskmgr Nybegynder
29. juli 2005 - 23:45 #15
Ok, velbekomme.
Jeg skal lige lave et svar først, som her, og så kan du acceptere.
Avatar billede neeesn Nybegynder
30. juli 2005 - 01:09 #16
jeg tester vidre med det .
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