SELECT topic_id, user_id, subject, status_id
FROM forum_topics
WHERE forum_id = ". $this->iId ."
ORDER BY topic_id DESC
SELECT topic_id, user_id, subject, status_id
FROM forum_topics
WHERE forum_id =". $this->iId ."
ORDERBY topic_id DESC
Ik heb nu de volgende statussen:
0 = gesloten
1 = open
2 = sticky
3 = sticky + gesloten
Maar als ik nu status_id DESC aan de query toevoeg dan staat de sticky topics bovenaan, daartussen de open topics en onderaan de gesloten. Maar dat wil ik niet echt . Ik wil graag dat alleen de sticky topics bovenaan staan en de open en gesloten topics gewoon op de normale plaats. Hoe kan ik dit het beste oplossen?
gewoon 2 keer ophalen?
Een keer de bestanden uit je db halen die sticky staan (dus met id 2) en vervolgens in een 2e query de bestandne die niet sticky zijn?
Of je doet niet moeilijk en je maakt die nummering anders? Je verplaatst de huidige 2 en 3 één plaatsje omlaag, en de 1 doe je naar 3. Dat lijkt me simpel genoeg?
@jerre, dat is een oplossing maar omdat het forum al genoeg queries bevat, wil ik het zo min mogelijk houden dus zoveel min mogelijk queries doen als mogelijk is.
@GTW, dat is toch hetzelfde als een cijfer in de status_id veld geven of niet?
@timmie_loots, nee, want zoals ik al zei dan word het dus zo:
sticky
open
open
gesloten
en ik wil graag dat het zo blijft
sticky
open
gesloten
open
@jerre, dat is een oplossing maar omdat het forum al genoeg queries bevat, wil ik het zo min mogelijk houden dus zoveel min mogelijk queries doen als mogelijk is.
Wil je de sticky topics altijd bovenaan hebben, ook al navigeer je naar pagina 2 van je topics-list? Zoja, dan moet je toch echt gaan voor 2 queries.
Ik denk dat je sowieso voor 2 queries moet gaan joh. Gewoon eerst de sticky ophalen op basis van dat id. Daarna de rest ophalen op basis van lastreaction (DATETIME) ofzo.
Op het moment dat je op dat status gaat ordenen dan krijg je gewoon dat ze eerst op die basis worden geordened, daarna pas op het id/tijd. Het moet echt met 2 queries anders krijg je niet het resultaat wat jij wilt.
het gemakkelijkste is gewoon een extra kolom toevoegen aan je topics tabel 'Sticky' die zet je default op 0 en voor een sticky op 1 en daar sorteer je gewoon als eerste op.