Avatar billede BTEngineer Novice
02. maj 2013 - 11:57 Der er 4 kommentarer og
2 løsninger

Rækkefølge-system?

Hej.

Jeg sidder med et annoncesystem, hvor det skal være muligt at lave "rækkefølger" i forhold til annoncerne.

Dvs. annonce nr. 5, skal man kunne bestemme skal være på toppen af siden. Det er jo nemt nok at sortere dem efter et tal, hvor det laveste tal "1" bare er øverst på siden.

Problemet er bare at når man redigere i en annonces "rækkefølge-tal", f.eks. fra "1" til "2", så vil alle de andre annoncer jo også omarrangeres.. Eller det vil sige, i ovenstående tilfælde, findes der pludselig ikke en "nr. 1" længere, men der er nu to annoncer der har en placering som 2.

Er der nogen der kender til metoder/løsninger som kan løse det på en let og elegant måde?

God torsdag til alle!

// Henrik
Avatar billede Slettet bruger
02. maj 2013 - 12:24 #1
Vil du gerne have styr på hvad for en af de to med tal "2" der vises først?

Men jeg vil gætte på at du kunne evt bare give et højere tal så alle er unik.

F.eks 1001, 2001, 2002 ?

Ellers prøv at uddyb :)
Avatar billede claes57 Ekspert
02. maj 2013 - 13:25 #2
hvis du flytter fra et større tal til et mindre (fx 5 til 2) så skal du rette på poster 2 til 5. Den, der rettes skal opdateres sidst. De andre (2 til 4) skal have lagt 1 til deres nummer. Og så tildeles 2 til den gamle 5.

Hvis der flyttes fra et lavere tal til et højere (2 til 5), så skal du på 3 til 5 trække 1 fra talles, og derefter rette den oprindelige 2'er til 5.

For at finde den oprindelige post skal du have en anden unik id på den post, da der vil være 2 på samme tid med rækkefølgetallet.

Det kan helt sikkert laves i få sql-kald - men det ligger udenfor min kompetance.
Avatar billede ahma0942 Nybegynder
07. maj 2013 - 08:17 #3
hvis du bruger PHP og SQL til at hente annoncerne fra en mysql database, kunne du bruge SQL's ORDER BY <b>kolonne navn</b>. Det vil hente dine annoncer efter hvilken kolonne du har valgt at hente dem efter.
Avatar billede BTEngineer Novice
09. maj 2013 - 09:33 #4
Mange tak for svarene.

Umiddelbart blev løsningen bare et felt i mysql, hvor der kommer til at stå et tal ud fra hver annonce, og så en ORDER BY feltet.

Jeg prøver lige at lege med, hvordan man kan få den til at "bytte", når man f.eks. ændre rækkefølgen fra 5 til 1 på en annonce, således at den anden annonce med rækkefølge 5, får rækkefølge 1 i stedet.

Giver det ikke meget god mening at gøre det på den måde?

Omvendt kan det godt virke lidt kompliceret for brugeren selv, at skulle have styr på hvilken annonce der har rækkefølge 5 osv.,

Vil i dele pointene claus og ahma?
Avatar billede claes57 Ekspert
09. maj 2013 - 09:57 #5
du kunne vise en side med annoncer i rækkefølge inkl deres nummer, og så kan bruger/administrator se, at nummer 5 skal op fx mellem 2 og 3 - dvs den skal have nummer 3.
En enkel side, og det er let at flytte på sorteringen.
Alle mellemliggende flyttes først (i et enkelt sql-kald), og derefter flyttes 5 til 3 (du skal her bruge et andet kald, så du kan fange den (sorteringsid #5 findes jo nu på 2 poster)).
Avatar billede BTEngineer Novice
09. maj 2013 - 10:06 #6
Det har du ret i Claus. Tænkte også man måske kunne lave noget jQuery/ajax, så brugeren helt dynamisk kan se hvordan rækkefølgen sker ved ændring på numrene. Men må jeg lige arbejde lidt med.

Jeg takker. :-)
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