webForumDet fria alternativet
Logga in / Bli medlem

Selecta ett av 2 värden i en cell?

Databaser & SQL

3 svar · 181 visningar · startad av clacke

Medlem sedan feb. 2003234 inlägg
Trådstart#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

Medlem 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.

Medlem 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.

Medlem 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.

261 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)