Avatar billede bugger Nybegynder
26. september 2003 - 09:21 Der er 5 kommentarer og
2 løsninger

Brugerdefineret sortering

Hejsa
Jeg har en selectbox som henter data fra en kolonne der hedder dyr. Brugerne af min side har selv mulighed for at tilføje dyr til databasen, som så også bliver vist i selectboksen. Som det er nu bliver dyrene vist alfabetisk :
abe
bille
comodo veran
dromedar
elefant
etc. etc.
Men hvordan kan jeg lave en mulighed for brugerne for SELV kan bestemme rækkefølgen i selectboksen? Hvis fx en bruger ønsker at dyrene skal listes:
bille
elefant
abe
comodo veran
dromedar
etc etc.
Jeg forestiller mig noget med at lave en side hvor dyrene er listet og hvor der ud for hvert dyr er en lille pil op og en lille pil ned. Når man klikker på pil op bliver dyret så rykket et nummer op i rækkefølgen (imens dyret ovenover bliver rykket ned) Denne listningsrækkefølge skal så selvfølgelig gemmes i databasen.
Tak for tips
/Bugger
Avatar billede mm12010 Nybegynder
26. september 2003 - 09:38 #1
ved et klik på op pilen:

sql = "UPDATE dyrtabel SET placering = placering+1 WHERE dyrID ="& Request.Querystring("id")
conn.Execute(sql)
sql = "UPDATE dyrtabel SET placering = placering-1 WHERE placering = (SELECT placering FROM dyrtabel WHERE dyrID = "& Request.Querystring("id") &")"
conn.Execute(sql)

og så omvendt ved klik på ned pilen

pilene skal selv følgelig være links med ref id til en anden side som udføre ovenstående kode
Avatar billede bugger Nybegynder
26. september 2003 - 09:51 #2
Hm ja noget i den retning. Jeg makker lige lidt med det og vender tilbage senere.
Avatar billede bocker Nybegynder
26. september 2003 - 11:40 #3
Joh, men nr. 2 SQL query bør du skrive:

sql = "UPDATE dyrtabel SET placering = placering-1 WHERE dyrID <> " & Request.QueryString("id") & " & " AND placering = (SELECT placering FROM dyrtabel WHERE dyrID = "& Request.Querystring("id") &")"

For når den første query er kørt, så vil der være to dyr med samme placering, og den der skal hives en tand op må jo ikke være den der lige er blevet hevet ned ;)
Avatar billede bugger Nybegynder
26. september 2003 - 14:07 #4
Hmm. jah det må jeg jo nok kunne få til at virke. Men hvad nu når brugeren lægger et nyt dyr ind -en rotte f.eks. Skal jeg så ikke først "tælle" op hvormange dyr der er under brugerID og så derefter give "placering" ved rotte en værdi der er antal+1? Og hvordan laver jeg igrunden denne optælling på en smart måde? (record.count or what? eller do until objRS.EOF i=i+1, or what)
/Bugger
Avatar billede bocker Nybegynder
26. september 2003 - 17:01 #5
SELECT COUNT(*) antal FROM dyrtabel WHERE brugerID=" & brugerid

Så kan du hente antallet ud med "antal", og så lægge en til det for at finde den nyes placering...
Avatar billede bugger Nybegynder
26. september 2003 - 19:41 #6
OK -jeg kikker lige på det senere i weekenden. Jeg skal nok vende tilbage med resultatet.
/B
Avatar billede bugger Nybegynder
28. september 2003 - 15:08 #7
Ja det virker tilsyneladende OK. Tak for hjælpen gutter. Kik her :
http://www.dogmedesign.dk/loeb/testdyr.asp

L8r
/Bugger
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