Avatar billede nikolajdu Nybegynder
02. december 2005 - 13:12 Der er 8 kommentarer og
2 løsninger

Sortér efter seneste indlæg.

Jeg har en tabel fra mit miniforum som jeg gerne vil have grupperet efter seneste indlæg fremfor nu hvor den seneste debat altid står øverst. Altså skal det sorteres efter de debatter med de seneste indlæg i stedet.

P.t sorterer jeg efter seneste debat på denne måde :

$sq = "SELECT news_id,headline,text,menu_group,comments,DATE_FORMAT(dato, '%d/%m - %H:%i') AS date,IF(LENGTH(headline)>28, CONCAT(LEFT(headline, 20) ,'...'), headline) AS short FROM user_text ".where_clause(1)." AND comments != '0' AND board='0' AND new_id = '1' AND public = '1' AND deleted = '0' GROUP BY comments ORDER BY dato $order_DESC LIMIT 0,5";

where_clause(1) - tjekker om man er logget ind.

`new_id` int(11) NOT NULL default '0' - Angiver det om det er en ny debat.
`comments` int(1) default '0' -

Det skal i stedet sorteres efter 'comments' - comments angiver hvilken debat's id det drejer sig om. Her ses det som 566 og debat 1098.

5383 bemærkninger Så du kampen, Schulz og er der noget at bemærke?
... 1 1098 - Første post - angivet af 1 tallet.

5395  Målene er her, hvis nogen ikke har set dem endnu..... 0 1098 Kommentar på post 1098

5396  Først vil jeg lige påpege at jeg ikke er fan af hv... 0 566 - En kommentar på post 566


Giver det nogen mening og kan nogen hjælpe mig med den korrekte sql til at få sorteret det anerledes :)
Avatar billede or.han Nybegynder
02. december 2005 - 14:58 #1
Tror bare der skal stå "ORDER BY dato ASC"....
Avatar billede or.han Nybegynder
02. december 2005 - 15:03 #2
Nej sorry. Der skal stå "ORDER BY dato DESC".
Men jeg kan se at du har en variabel foran _DESC men det forstår jeg ikke...
Prøv med det her:
$sq = "SELECT news_id,headline,text,menu_group,comments,DATE_FORMAT(dato, '%d/%m - %H:%i') AS date,IF(LENGTH(headline)>28, CONCAT(LEFT(headline, 20) ,'...'), headline) AS short FROM user_text ".where_clause(1)." AND comments != '0' AND board='0' AND new_id = '1' AND public = '1' AND deleted = '0' GROUP BY comments ORDER BY dato DESC LIMIT 0,5";
Avatar billede nikolajdu Nybegynder
02. december 2005 - 15:03 #3
or_han - $order_DESC er et flasg der angiver hvorvidt der sorteres op eller ned - ikke hvilken tabel der skal sorteres efter.
Avatar billede nikolajdu Nybegynder
02. december 2005 - 15:05 #4
Den står som default til "desc" - men kan vendes om.
Avatar billede or.han Nybegynder
02. december 2005 - 15:19 #5
Hvis du vil starte med den største værdi bruges DESC, som betyder descending = "at gå ned". Standardværdien er ASC, som betyder ascending = "at gå op".

Er $order_DESC et flasg?? Hvad mener du?? Hvad er der i variablen?

Når man siger "ORDER BY dato DESC" betyder det at hele tabellen sorteres efter dato og med den største dato først...

Du kan også bruge "comments" i stedet for "dato". Har du prøvet det jeg skrev??
Avatar billede nikolajdu Nybegynder
21. december 2005 - 20:43 #6
Well måske er det for svært for mig at forklare, men smid et svar så får du lidt for kigget.
Avatar billede or.han Nybegynder
22. december 2005 - 11:40 #7
Nej ellers tak.
Avatar billede nikolajdu Nybegynder
22. december 2005 - 12:34 #8
Er du sikker - Du har da ihvertilfald brugt tid på at tyde mine skrifttegn :)
Avatar billede or.han Nybegynder
22. december 2005 - 14:50 #9
Vi kan bare dele så.
Avatar billede nikolajdu Nybegynder
03. januar 2006 - 01:18 #10
ok godt så og godt nytår :))
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
Computerworld tilbyder specialiserede kurser i database-management

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