webForumDet fria alternativet

Selecta ett av 2 värden i en cell?

3 svar · 181 visningar · startad av clacke

clackeMedlem sedan feb. 2003234 inlägg
#1

Har 2 st värden i databasen:
grupp1,grupp2

Jag vill kunna välja antingen att session("anv")=antingen grupp1 eller grupp2

Hur skriver jag?
Tack på förhand

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Har du lagrat värdet grupp1,grupp2 i en post i din tabell? (Om du har gjort så så tycker jag att du skall ändra din datamodell.)

Beskriv lite mer detaljer, tack.

clackeMedlem sedan feb. 2003234 inlägg
#3

Ok, ja dom ligger i samma post i databasen.
När jag skriver in en användare så ska denna kunna tillhöra flera olika grupper tex grupp1,grupp2

Beroende på vilken grupp man tillhör så ska man kunna se respektive sida. tillhör jag grupp1 så får jag se sida1 osv
tillhör jag grupp1,grupp2 så får jag se sida1,sida2 osv
om jag tillhör grupp2 så får jag se sida2

När användaren loggar in på sidorna så är det vissa gömda sidor som man se beroende på vilken grupp man tillhör.
Det är ju inga problem när man bara tillhör 1 grupp men det blir värre när man ska tillhöra flera grupper.

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Det är då man skapar en relationstabell

create table memberInGroup(username <type>,
groupname <type>)

Om en person är medlem i flera grupper så lagrar man flera poster i tabellen.

Om du vill ha alla som är medlem i grupp1 eller grupp2

select username from memberInGroup
where groupname in ('grupp1','grupp2')

I exemplet spå förutsatte jag att du lagrar username och gruppnamnet direkt, men du kanske har så att du har ett userid (räknare) för varje användare och ett gruppid för varje
grupp. I så fall har man tre tabeller

create table users(userid int identity, username varchar(20), ....) -- primary key etc

create table groups(groupid int identity, groupname varchar(20), ... ) -- primary key etc

create table memberInGroup(userid int,groupid int,...)
-- foreign keys etc (

och då för att få alla som är med i grupp1 eller grupp2

[kod]
select username from users
where userid in (select userid from memberInGroup mig,
groups g
where g.groupid = mig.groupid
and mig.groupname in ('grupp1','grupp2')
[/kop]

Den modellen innebär att du t.ex. har lättare att byta namn på en grupp för du behöver bara ändra på ett ställe.

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