Avatar billede larserik Nybegynder
13. november 2008 - 12:54 Der er 5 kommentarer

Sortere meny

Hei

Jeg ønsker å lage en måte å sortere en meny på.. jeg har tenkt mye men klarer ikke komme på en god måte å gjøre dette på.

Tabellen min ser slik ut:

ID    Navn    Plassering
1    Brukere    3
2    Grupper    2
3    Nyheter    4
4    Informasjon 1

Så har jeg en SQL setning i ASP som sier SELECT * FROM TABLE ORDER BY PLASSERING ASC

Da får jeg denne rekkefølgen:

Informasjon
Grupper
Brukere
Nyheter


MEN så ønsker jeg å ha et script som jeg kan trykke for å flytte foreksempel Brukere opp i plasseringen sånn at den står over Grupper.

Hvordan kan jeg gjøre dette? Jeg trenger altså en måte å endre plassering.. jeg tenkte at hvis jeg lage noe sånt:

UPDATE TABLE SET PLASSERING = PLASSERING+1 WHERE ID = 1

og så

UPDATE TABLE SET PLASSERING -1 <> 1

Men.. det går ikke..

Noen tips?

Takk.
Avatar billede softspot Forsker
13. november 2008 - 13:05 #1
Det er nok noget med at rykke de menupunkter som har en højere placering end det du flytter til og mindre end det du flytter fra (når du flytter et punkt opad - omvendt når du flytter nedad).

Flyt et menupunkt opad (plassering bliver mindre):

UPDATE table
SET plassering = plassering - 1
WHERE id = 1

UPDATE table
SET plassering = plassering + 1
WHERE plassering = (
  SELECT plassering
  FROM table
  WHERE id = 1
)

Og hvis du flytter det nedad er det blot med omvendt fortegn:

UPDATE table
SET plassering = plassering + 1
WHERE id = 1

UPDATE table
SET plassering = plassering - 1
WHERE plassering = (
  SELECT plassering
  FROM table
  WHERE id = 1
)
Avatar billede softspot Forsker
13. november 2008 - 13:07 #2
Ups! Glem lige min indledende kommentar, da den var med vilkårlig flytning i tankerne. Når du kun flytter et punkt ad gangen, burde den illustrerede SQL være tilstrækkeligt.
Avatar billede larserik Nybegynder
13. november 2008 - 13:35 #3
Takk for respons! Men er dette den beste måten å gjøre det på? Er det andre måter å lage et system for menyen på?
Avatar billede softspot Forsker
13. november 2008 - 13:46 #4
Hmmm... om det er den bedste måde kan jeg ikke svare på, men det er vist en gængs måde at gøre det på og jeg synes det er en OK løsning.

Jeg kan ikke helt gennemskue om du rent faktisk spørger efter en konkret løsning til en brugergrænseflade til at løse dette, men jeg tolker dine egne eksempler i det retning, at du mangler et sæt SQL-kommandoer der kan håndtere flytningen.

Hvis det er brugergræsefladen du søger, så vil jeg umiddelbart vælge at lægge dem i en tabel og så ud for hvert menupunkt, have en knap der kalder hhv. flyt op og flyt ned når du trykker på knappen. Det eneste der skal sendes med i kaldet er i princippet id på det menupunkt der skal flyttes, resten klares af UPDATE-sætningerne...
Avatar billede larserik Nybegynder
17. november 2008 - 12:15 #5
Søker bare litt SQL-kommandoer ja, eventuelt ideer eller tips om hvordan det kan løses på andre måter.
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