Avatar billede goose Nybegynder
25. januar 2005 - 09:12 Der er 11 kommentarer og
1 løsning

Findes brugeres id nummer i array

Jeg er ved at lave noget rettighedsstyring til et lille system.

Jeg har en f.eks. en tabel i min database der hedder user_read og i denne har jeg et array der består af de id numre fra fra min user tabel der har læserettigheder.

Mit array ser således ud:

1, 3, 4, 41, 11

Hvordan er det så lige jeg finder ud af, om den bruger der er logget ind har ret til at læse, altså om brugerens id nummer er at finde i ovenstående array ?

Brugeres id nummer lægges i en cokkie når vedkommende er logget ind.

/Goose
Avatar billede fennec Nybegynder
25. januar 2005 - 09:30 #1
Hvad mener du med et array?? Ligger det som en komma separeret liste, eller som hver sin post??
Avatar billede goose Nybegynder
25. januar 2005 - 09:37 #2
Det ligger som en komma separeret liste i min database med felttypen notat.

/Goose
Avatar billede goose Nybegynder
25. januar 2005 - 10:41 #3
Jeg har fundet ud af det selv ved at bruge inStr

/Goose
Avatar billede jgp Nybegynder
25. januar 2005 - 13:23 #4
Pas på med at bruge inStr i dit tilfælde. ser dit array sådan her ud (1,2,30), Vil InStr svare true hvis du søger på id 3. Hvilket, jeg vil formode ikke er meningen.
Avatar billede goose Nybegynder
25. januar 2005 - 13:47 #5
Ja det er netop gået op for mig for 2 min. siden da jeg oprettede brugeren med id nr. 10, så stopper festen jo ligesom når der også er en bruger med nr 1 :o(

Hvad hulen gør jeg så ?

/Goose
Avatar billede jgp Nybegynder
25. januar 2005 - 13:55 #6
Træk din værdi ud af databasen.
Lav en split(array, ",") på den.
Lav en for løkke, hvor du teste efter værdien
Avatar billede cpufan Juniormester
25. januar 2005 - 14:51 #7
du kan godt bruge instr så skal du bare have kommaerne med så du søger på ,3,

som så ikke vil give fejl jvf. 25/01-2005 13:23:43
Avatar billede jgp Nybegynder
25. januar 2005 - 14:54 #8
cpufan: og det vil heller ikke virke hvis 3, var det sidste tal i arryet.
Avatar billede cpufan Juniormester
25. januar 2005 - 14:57 #9
hvis man indsætter en ny værdi efterfulgt af komma,
og den første værdi i notatfeltet er et komma,
så virker det da.

Men generelt er hele dette set ikke optimalt.
Avatar billede fennec Nybegynder
25. januar 2005 - 15:01 #10
Den brdste (og mest "rigtige") løsning er at ændre din database. Alle kommasepereret lister kan smides i en selvstændig tabel med et reference punkt.

Hvilke felter har den tabel og hvordan hænger den sammen med andre tabeller.

Sådan som jeg ser det nu, har du kun et felt og en post. Hvis det er tilfældet, ændre du koden så du får en post for hver bruger:

Før:
kolonne
"1, 3, 4, 41, 11"

efter:
kolonne
1
3
4
41
11
Avatar billede jgp Nybegynder
25. januar 2005 - 15:03 #11
fennec: enig
Avatar billede goose Nybegynder
25. januar 2005 - 15:52 #12
Jeg har brugt cpufans løsning med at tilføje et komma før og efter min i forvejen komma separerede streng, det virker efter hensigten.

Derfor har jeg givet point til cpufan i http://www.eksperten.dk/spm/584603

Jeg kan godt se logikken i den løsning du kommer med fennec, men det bliver vist lidt omfattende når der hele tiden kommer nye brugere og nye sider til.

/Goose
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
Kurser inden for grundlæggende programmering

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