webForumDet fria alternativet

Spara val från flera checkboxar?

Databaser & SQLur Databashanterare & SQL

7 svar · 561 visningar · startad av Guldstrand

Medlem sedan juli 20041 271 inlägg
Frågan#1

Håller på med några funktioner till en medlemsprofil, och har en fråga.
Om jag vill att medlemmen ska ha möjlighet att välja och spara flera alternativ (checkbox), hur löser jag det??

Exempel (intressen): [x]musik [x]film [x]spel

Hur gör jag så att alla val ovan sparas i databasen?
Hur gör jag sedan för att visa alla valen på profilen, (för andra medlemmar)?

Vilken fälttyp är bäst lämpad för detta?

Medlem sedan okt. 20041 556 inlägg
#2

Det måste du göra i ett annat lager än i databasen.
Boolean eller bit skulle väl vara att föredra.

Medlem sedan juli 20041 271 inlägg
#3

Travoni skrev:

Det måste du göra i ett annat lager än i databasen.
Boolean eller bit skulle väl vara att föredra.

Hmm... :q
Nu förstår jag ingenting. Hur menar du?
Du kanske visa lite exempelkod?

Medlem sedan feb. 2005280 inlägg
#4

En kopplingstabell hade jag nog gjort, lite bökigt men värt besväret i längden.

tabell: UserData
kolumner: UserDataId (int primary), UserId (int), DataId (int)

lägg till o ta bort blir enkel sen att hantera.

Annars kan man ju lagra allt som en enda integer på Usernivå, tex musik = 1, spel = 2, film = 4, så kan man ju ha sin byte o lagra dessa bitar i.

dessa tre val skulle då bli 00000111, dvs = 7

Medlem sedan jan. 2005953 inlägg
#5

Jag skulle ha gjort en tabell som innehåller de olika intressena, och sedan en tabell som kopplar ihop varje enskild medlem med ett intresse.

Ex. (MySQL)

Tabell intressen:

CREATE TABLE intressen (
IID UNSIGNED INT AUTO_INCREMENT,
INamn VARCHAR(20) NOT NULL,
PRIMARY KEY (IID)
)

Tabell medlem_intresse:

CREATE TABLE medlem_intresse (
MID UNSIGNED INT,
IID UNSIGNED INT,
PRIMARY KEY (MID, IID)
)

Förklaring:
IID - Intressets ID-nummer.
INamn - Namn på intresse (t.ex. Musik)
MID - Medlemmens ID-nummer.

Medlem sedan juli 20041 271 inlägg
#6

metalboy skrev:

Jag skulle ha gjort en tabell som innehåller de olika intressena, och sedan en tabell som kopplar ihop varje enskild medlem med ett intresse.

Ex. (MySQL)

Tabell intressen:

CREATE TABLE intressen (
IID UNSIGNED INT AUTO_INCREMENT,
INamn VARCHAR(20) NOT NULL,
PRIMARY KEY (IID)
)

Tabell medlem_intresse:

CREATE TABLE medlem_intresse (
MID UNSIGNED INT,
IID UNSIGNED INT,
PRIMARY KEY (MID, IID)
)

Förklaring:
IID - Intressets ID-nummer.
INamn - Namn på intresse (t.ex. Musik)
MID - Medlemmens ID-nummer.

Ok.. detta verkar mycket lättare. :p
Är detta ett "bra" sätt att göra det på då?

Medlem sedan jan. 20023 327 inlägg
#7

Guldstrand skrev:

Ok.. detta verkar mycket lättare. :p
Är detta ett "bra" sätt att göra det på då?

Ja det är ett bra sätt.

Medlem sedan juli 20041 271 inlägg
#8

Compusa skrev:

Ja det är ett bra sätt.

Då vet jag. Tack! :birp

137 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)