Avatar billede hmortensen Nybegynder
17. maj 2003 - 00:22 Der er 31 kommentarer og
1 løsning

Liste poster fra mySQL db i system

Jeg skal ha listet en række personer med forskellig status.

Ex.:

Jens | Admin
Jacob | Admin
Claus | Webmaster
Peter | Sælger
Rasmus | Sælger
Michael | Assistent

Hvordan gør jeg det. Jeg har prøvet at sortere efter status, men den gør det jo bare alfabetisk.

Nogen forslag ?
Avatar billede schaefner Juniormester
17. maj 2003 - 00:25 #1
Hvordan vil du ellers sortere når nu status f.eks. er Admin, det kan da ikke blive andet end alfabetisk.
Avatar billede hmortensen Nybegynder
17. maj 2003 - 00:26 #2
Som det står oppe over:

A
W
S
A
Avatar billede schaefner Juniormester
17. maj 2003 - 00:27 #3
Jeg er ikke helt med.
Avatar billede hmortensen Nybegynder
17. maj 2003 - 00:28 #4
Hvis den sorterede alfabetisk, ville det blive:
A
A
S
W
Avatar billede schaefner Juniormester
17. maj 2003 - 00:29 #5
Hvad er årsagen til at du vil ha' sorteret sådan:
A
W
S
A

??
Avatar billede hmortensen Nybegynder
17. maj 2003 - 00:29 #6
Det er at nogle personer med en status skal stå nederst og nogle øverst.

Er det en helt umulig opgave ?
Avatar billede schaefner Juniormester
17. maj 2003 - 00:30 #7
ja, men hvordan er logikken i sorteringen?
Avatar billede hmortensen Nybegynder
17. maj 2003 - 00:31 #8
Hvad mener du ?

De skal bare soteres i status 'blokke' i den rækkefølge
Avatar billede schaefner Juniormester
17. maj 2003 - 00:33 #9
Ja, men hvor er logikken i denne sortering:

A
W
S
A

Hvorfor står det sidste A ligepludselig nederst?
Avatar billede hmortensen Nybegynder
17. maj 2003 - 00:33 #10
Fordi assistenter skal nederst
Avatar billede exp-ralle Nybegynder
17. maj 2003 - 00:35 #11
Du kan evt. give statuserne numre og så sortere dem...

A: 1
W: 2
S: 3
A: 4

og så sortere efter det...
Avatar billede jaw Nybegynder
17. maj 2003 - 00:35 #12
Er det så ikke bare, at sortere det efter id?
Avatar billede hmortensen Nybegynder
17. maj 2003 - 00:36 #13
Nope, fordi folk skal kunne tilføjes, men den med tallene er en mulighed
Avatar billede exp-ralle Nybegynder
17. maj 2003 - 00:38 #14
Du kan bare lave status om til et int felt og så kan du lave en if med:

if($row['status'] == 1) $status = "Admin";
elseif($row['status'] == 2) $status = "Webmaster";

osv.....
Avatar billede hmortensen Nybegynder
17. maj 2003 - 00:39 #15
Det prøver jeg lige i morgen

Er for træt til mere nu, men tak for hjælpen indtil videre

Det værste er at jeg skal ændre hele db'en :(
Avatar billede exp-ralle Nybegynder
17. maj 2003 - 00:40 #16
Ja jeg er også træt :D

Hvorfor skal du ændre hele db'en?
Avatar billede hmortensen Nybegynder
17. maj 2003 - 00:41 #17
fordi der er en masse folk i, og deres status skal så ændre til tal
Avatar billede exp-ralle Nybegynder
17. maj 2003 - 00:42 #18
nååå... hvor mange er det sådan ca.?
Avatar billede hmortensen Nybegynder
17. maj 2003 - 00:43 #19
45 stk tror jeg, men kan vel bare lave et dumb til en fil, og bruge 'søg og erstat'
Avatar billede schaefner Juniormester
17. maj 2003 - 00:43 #20
mysql_query("UPDATE tabel SET status=1 WHERE status='Admin'");

Så skulle den gerne opdatere for dig
Avatar billede schaefner Juniormester
17. maj 2003 - 00:44 #21
så skal du selvfølgelig også lave en til de andre.
Avatar billede hmortensen Nybegynder
17. maj 2003 - 00:44 #22
ok...

Det lyder jo let
Avatar billede hmortensen Nybegynder
17. maj 2003 - 00:44 #23
ja det klart
Avatar billede exp-ralle Nybegynder
17. maj 2003 - 00:44 #24
... og husk at lave feltet til int :D
Avatar billede exp-ralle Nybegynder
17. maj 2003 - 00:45 #25
eller hvis der er en mindre type til tal.. ved ikke om der er kender ikke så meget til de der mysql typer :D
Avatar billede hmortensen Nybegynder
17. maj 2003 - 00:46 #26
tinyint mener jeg der er en der hedder, men er det så vigtigt ?

stort set alle mine felter er text. gør det den langsommere ?
Avatar billede exp-ralle Nybegynder
17. maj 2003 - 01:05 #27
Tror jeg ikke... kan jo egentlig også være lige meget om status stadig var en varchar for man kan jo godt smide tal i en text... :D
Avatar billede ohmish Nybegynder
21. maj 2003 - 07:08 #28
ellers:

mysql_query("SELECT * FROM personer ORDER BY status, navn");
Avatar billede ohmish Nybegynder
21. maj 2003 - 07:09 #29
glem ovenstående. det ville ikke ændre rækkefølgen af AASW
Avatar billede ohmish Nybegynder
21. maj 2003 - 09:04 #30
Hvis admin=1, webmaster=2, sælger=3, assistent=4
kan du fint bruge ovenstående.

eller du kan dele det op:

mysql_query("SELECT * FROM personer WHERE status='1' ORDER BY navn");
echo "Admins: ";
dit while loop her.

mysql_query("SELECT * FROM personer WHERE status='2' ORDER BY navn");
echo "Webmasters: ";
dit while loop her.

osv. osv.
Avatar billede hmortensen Nybegynder
21. maj 2003 - 10:08 #31
Jeg har levet, men ellers tak
Avatar billede hmortensen Nybegynder
20. juni 2003 - 18:28 #32
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