Avatar billede hobz Nybegynder
10. juli 2006 - 20:54 Der er 7 kommentarer og
1 løsning

PHP & MySQL - enumerated

Er ved at lave en database til brug i PHP, hvor jeg gerne vil have oplysninger som: er brugeren aktiv? Y/N.
Hvordan kan jeg benytte en enumerated værdi, så 'N' automatisk er false, og 'Y' true?
$t = "SELECT * FROM users"
if ($t->userActive) { ... }

hvordan kan jeg få PHP/MySQL til at behandle 'N' som false, og 'Y' som true, så jeg kan benytte ovenstående pseudo-pseudokode?
Avatar billede jakobdo Ekspert
10. juli 2006 - 22:19 #1
Jeg ved ikke om du måske kunne:

define("Y", TRUE);
define("N", FALSE);
Avatar billede hobz Nybegynder
12. juli 2006 - 13:20 #2
Det gør jo ikke udtrykket $t->userActive logisk.
Avatar billede jakobdo Ekspert
12. juli 2006 - 13:32 #3
Så forstår jeg dig desværre ikke.
Avatar billede Slettet bruger
12. juli 2006 - 13:42 #4
Du kan udnytte, at 1 er true og 0 er false i php. Så skal du bare bruge en IF i dit SQL-statement. Noget i stil med

SELECT IF(userActive = 'Y', 1, 0) AS userActive, andre felter
Avatar billede hobz Nybegynder
12. juli 2006 - 19:54 #5
Okay ja. Det ser snedigt ud.
Men det er måske i virkeligheden bare nemmere, at bruge 1 for 'Y' og 0 for 'N' i databasen?
Avatar billede Slettet bruger
13. juli 2006 - 20:40 #6
Ja, det vil være endnu nemmere, men nu bad du jo om en enum.

Du kan sætte typen til f.eks BOOL eller BIT(1), og så skal du bare vide, at også i SQL er 0=false og 1=true (faktisk er alle ikke-nul-værdier = true - lige som i PHP).
Avatar billede hobz Nybegynder
14. juli 2006 - 18:13 #7
Yes. Tænkte bare om man kunne bruge enum som en slags layer for booleans, så Y = true, N = false.
Avatar billede hobz Nybegynder
11. marts 2007 - 14:15 #8
Lukker
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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