02. maj 2013 - 11:57Der 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?
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.
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.
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.,
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)).
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. :-)
Synes godt om
Ny brugerNybegynder
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.