Forum Kategorien Ordnen

bomberpilotmp3

Erfahrenes Mitglied
Hallo,

ich habe eine Frage. Ich habe ein kleines Forum, und nun ein Problem. Ich habe eine Kategorieansicht die nach meherern Kreterien sortiert werden soll.

Das Thema das am meisten aktiv ist, soll ganz an erster stelle hin. Die äleteren und weniger genutzen Themen, sollen nach unten verschoben werden.

Meine Tabellenstruktur:

Code:
 CREATE TABLE `FORUM_THREAD` (
    `THREAD_ID` INT( 11 ) NOT NULL AUTO_INCREMENT,
    `TOPIC_ID` INT( 11 ) NOT NULL,
    `THREAD_ICON` INT( 11 ) NOT NULL,
    `THREAD_HITS` INT( 11 ) NOT NULL,
    `THREAD_CLOSE` INT( 1 ) NOT NULL,
    `THREAD_IMPORTANT` INT( 1 ) NOT NULL,
    `THREAD_BBCODE` INT( 1 ) NOT NULL,
    `THREAD_SMILIE` INT( 1 ) NOT NULL,
    `THREAD_AUTOR` INT( 15 ) NOT NULL,
    `THREAD_DATE` INT( 11 ) NOT NULL,
    `THREAD_HEADTITLE` VARCHAR( 500 ) NOT NULL,
    `THREAD_TEXT` TEXT NOT NULL,
     PRIMARY KEY ( `THREAD_ID` )
) ENGINE = MYISAM;

Nun wie Frage, wie muss der SQL Code aussehen, damit ich die Themen sortieren kann?

Themen die als Wichtig markiert worden sind (THREAD_IMORTANT) sollen ganz nach oben. Die anderen Themen sollen je nach Datum (neuste) und nach Beiträgen/Hits nach oben oder nach unten verschoben werden.

WIe realisere ich das?
 
Ich würde eine kleine function schreiben (get_important_topics($categorie) oder so), die erst die gepinnten Threads ausliest und dann den Rest mit ORDER BY date auslesen. beim lesen bzw. schreiben in einen Thread musst du dann nur den timestamp updaten...
 
"ORDER BY" kann man mehrere Felder übergeben. Du könntest es also wie folgt umsetzen:
Code:
SELECT * FROM FORUM_THREAD ORDER BY THREAD_IMPORTANT DESC, THREAD_DATE ASC, THREAD_HITS DESC;
"DESC" und "ASC" sollen nur aufzeigen, dass man jedes Feld individuell sortieren kann, eventuell musst du sie noch "umdrehen". ;)
 
Zurück