Avatar billede ducks Nybegynder
13. oktober 2004 - 14:00 Der er 7 kommentarer og
1 løsning

Sortere database kolonner efter nummer

Hvis jeg har i min database

kol1 | kol2 | kol3 | kol4
  2  |  1  |  4  |  3

Hvordan kan jeg så få dem sorteret, så når jeg trækker dem ud, at de bliver sorteret fra 1 til 4. Altså
kol2
kol1
kol4
kol3
Avatar billede ducks Nybegynder
13. oktober 2004 - 14:15 #1
jeg bruger MySQL
Avatar billede ducks Nybegynder
13. oktober 2004 - 14:21 #2
Jeg prøver at lave et system ligesom på Eksperten, hvor man kan vælge hvilke menuer man vil se og i hvilken rækkefølge.
Avatar billede eagleeye Praktikant
13. oktober 2004 - 16:40 #3
Hedder kolonnerne kol1, kol2, kol3, kol4 ?
og du vil gerne hvade kolonnenavnet ud?

Du kan lave en UNION som sortere efter tallet og så angive en kolonenanvet som en alias kolonne:

sql = "select * from ((select kol1 as kol, 'kol1' as navn from tabel) UNION (select kol2 as kol, 'kol2' as navn from tabel) UNION (select kol3 as kol, 'kol3' as navn from tabel) UNION (select kol4 as kol, 'kol4' as navn from tabel)) order by kol"
Avatar billede ducks Nybegynder
13. oktober 2004 - 16:49 #4
Måske er det lidt dårligt forklaret..

Jeg vil lave et system ligesom her på Eksperten, hvor man kan vælge hvilke menuer der skal vises og i hvilken rækkefølge.

Jeg ved ikke om det her er den smarteste metode.

Jeg havde forestillet mig noget med, at man lavede en række med ID som brugerens ID og kolonner til de forskellige menuer.

ID          | MenuNr1        | MenuNr2 | MenuNr3 | MenuNr4
Brugerens ID | Placering, fx 2 |    4    |    3    |  1

Så når menuen skal vises, kommer den ud i venstre side som:

MenuNr4
MenuNr1
MenuNr3
MenuNr2
Avatar billede ducks Nybegynder
13. oktober 2004 - 17:27 #5
Er det en dårlig måde at gøre det på?
Avatar billede eagleeye Praktikant
13. oktober 2004 - 17:47 #6
Det gør det noget besværligt at hente ud og man skal så gøre som vist med UNION hvis du vil havde ud som en líste MenuNr4, MenuNr1, MenuNr3, MenuNr2
Eller kan du lave et array som du ligger det ind i og sortere.


Jeg ville nok lave det i stil med:
En tabel som indeholder 3 kolonne: brugerID, menuID, orderno

Så vil der for hver bruger være 4 rækker med menuID 1-4 så samme eksempel:

brugerID | MenuNr | placering
  X          1          2
  X          2          4
  X          3          2
  X          4          1


Man skal så lave 4 update SQL sætninger når man ændre på det men når man henter det ud kan det laves som en simpel SQL:

"select * from menuorder where brugerID=23 order by placering"
Avatar billede ducks Nybegynder
13. oktober 2004 - 23:07 #7
Du kommer bare med et svar, hvis du vil have point - Selvom du ikke løste mit problem, fortalte du mig hvordan det skulle laves istedetfor.
Avatar billede eagleeye Praktikant
13. oktober 2004 - 23:16 #8
Ok ;)
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