Dette er resultatet af denne query: "select titel, dato, beskrivelse,hits,skribent,id from artikler where sub = '$sub' order by titel asc limit 10"
Men som i sikkert kan se, kan MySQL slet ikke få sorteret dem i rigtig rækkefølge. Men det underlige er, at sortere du via "order by titel desc", er der ingen problemer..
Jeg har hørt noget om, at denne fejl er en kendt mysql fejl, nogen der har en løsning?
Jeg vil anbefale at du laver et ekstra felt som angiver rækkefølgen posterne skal sorteres kald det f.eks. 'sort', lav den af type double, så har man altid mulighed for at lægge en post imellem to andre ved 'sort' fra posten før og efter sammen og dividere med 2. Værdien man får benyttes som 'sort'.
Forresten benyt ikke negative værdier i 'sort', så går det galt. Hvis man lægger en post ind i starten divideres den efterfølgende posts værdi med 2. Hvis man skal lægge en post ind i slutningen lægges 1 til den sidste post.
Nu vil jeg tilføje en ny post. tager max værdien af tabellen og lægger 1 til.
4,00 = A.A.1.12
Hvis jeg vil tilføje en post i starten tager jeg værdien af posten der ligger før (findes ikke) som er nul og posten der ligger efter som er 1. Summen er 1, deler med 2 og får 0,5
0,50 = A.A.1.1
Hvis jeg vil tilføje en post i mellem A.A.1.9 og A.A.1.11 tager jeg værdien af posten der ligger før som er 2 og posten der ligger efter som er 2. Summen er 5, deler med 2 og får 2,5
nemeier > i netop dette tilfaelde, vil det ikke vaere nemmere (smartere) at fremfor et felt med titel hvor der indgaar denne tal fordeling, at lave felter for A A 1 9 hvor man istedet saa kunne soege paa felt1 asc, felt2 asc, felt3 asc, felt4 asc
Umiddelbart kan det synes besvaerligt, men jeg vil hellere sortere paa de reele vaerdier end begynde med den matematiske model du har bygget. Jeg benytter nogle gange en metode bygget over timestamp der byttes rundt for at paa denne maade at kunne dynamisk flytte indhold i forhold til hinanden.
Det med sort, vil være meget besværligt, da vi allerede har 3000 artikler fordelt i 30 kategorier.. Især fordi at de ikke tilføjes i rigtig rækkefølge, og du så skal sidde og regne ud, hvad sort nu skal være..
Jeg er mere stempt for ljweb's model, vil kigge på den straks.. Men hvis jeg har forstået det rigtigt, vil du simpelthen oprette 4 nye felter, som sagt felt1, felt2, felt3 og felt4 og så bede den sortere via disse 4 felter, hvor felt1 = A, felt2 = 2, felt3 = 1 og felt4= 10?
ljweb: Det er korrekt sålænge at man hele tiden benytter samme system med 2 bogstaver og to tal, men desværre bliver man ofte nød til at stoppe en post ind i mellem således at man f.eks. får en A.A.1.9.b. Her vil dit system ikke virke.
fynbo: det er vigtigt at du får defineres felt3 og felt4 som tal ellers vil det ikke virke og du vil have samme problem som jeg beskrive med 1,10,2
nemeier >> jeg kender ikke "fynbo"'s datamodel og hvilke exeptions der er. Det er klart der skal taenkes mere grundigt over det end blot at indfoere 4 felter uden tanke bag.
fynbo >> grunden til at du oplever problemer er, at du i titlen gemmer tal. 10 som tekst er logisk mindre end 2, mens det som en integer er stoerre. PHP indeholder sorteringsmekanismer der kan haandtere dette, men netop som her hvor der er stoerre datamaengder, vil jeg ikke anbefale det - specielt af performance hensyn.
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.