WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Array -> mysqldatabas? (https://www.wn.se/forum/showthread.php?t=34059)

beeimages 2008-12-19 15:25

Hejsan!

Jag har ett registreringsskript där användaren får välja kategorier från <select name="kategori[]" input class="required" multiple="multiple">.

Vad jag förstod så måste detta ske med en array för att kunna skicka med flera val? När jag vill använda INSERT into så lagras endast ordet "Array" i min mysqldatabas.

Hur skall jag göra så att varje kategori lagras med ett komma(,) i mellan?

MVH Billy

allstars 2008-12-19 15:48

gör en split för formulärfältet och utför en foreach-loop på serversidan.

tartareandesire 2008-12-19 15:53

För framtida bruk så kan det vara bra att veta att när du får värdet "Array" så betyder det att variabeln är just en vektor (array) och måste behandlas som en sådan.

Nu vet jag inte exakt vad det handlar om eller hur informationen används men det låter som att det skulle kunna vara lämpligt att lagra kategorierna i en särskild tabell i databasen.

Magnus_A 2008-12-19 18:00

Implode(',',$dinmatris) heter funktionen i pHp som gör en komma(eller vad du vill) -separerad sträng av en matris (array).

tartareandesire 2008-12-19 18:13

Citat:

Originally posted by Magnus_A@Dec 19 2008, 19:00
Implode(,,dinmatris) heter funktionen i pHp som gör en komma(eller vad du vill) -separerad sträng av en matris (array).

Och explode gör det omvända när du behöver det.

studiox 2008-12-20 01:44

Du behöver bara använda en array du ska använda SAMMA namn i flera OLIKA name=

Använder du en kan den väl heta name=dropdown1 eller liknande.
Det är bara när du har ett obestämt antal, dvs. det kan vara 1 dropdown eller 100 som det är smidigt att loopa igenom en array.

Men precis som magnus säger så verkar du i ditt script inte "förstå" att det är en array som du stoppar in i databasen. Du kan INTE stoppa in en array i databasen direkt. Du måste antagligen göra flera INSERT eller göra en implode.


Alla tider är GMT +2. Klockan är nu 06:38.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson