Ik ben bezig met een CMS. De CMS kant is zo goed als af en ik ben nu bezig met de voorkant.
In de CMS kun je instellen dat hij automatisch berichten archiveert. Als je dit hebt aanstaan, kun je ook kiezen na hoeveel dagen de berichten worden gearchiveerd. Je kunt ook instellen hoeveel er minimaal getoond moeten worden.
Ik heb een query als deze:
SELECT
title
, message
, DATE_FORMAT(postdate, '%d.%m.%Y %H:%i') as showdate
FROM
tabel_naam
WHERE
postdate >= NOW()-$arch_na_x_dagen
Nu wil ik dus wel dat hij altijd 10 berichten laat zien, ongeacht of het bericht nu kleiner is dan NOW() - $arch_na_x_dagen of niet.
Ik ben (nog) niet een ster in SQL. Weet iemand misschien hoe dit te maken? :)
SELECT
title
, message
, DATE_FORMAT(postdate, '%d.%m.%Y %H:%i') as showdate
FROM
tabel_naam
ORDER BY
postdate DESC (of ASC, ik haal ze verdomme altijd door elkaar :( )
LIMIT
10-(COUNT(SELECT
title
, message
, DATE_FORMAT(postdate, '%d.%m.%Y %H:%i') as showdate
FROM
tabel_naam
WHERE
postdate <= NOW()-$arch_na_x_dagen
ORDER BY
postdate DESC (of ASC, ik haal ze verdomme altijd door elkaar :( )
));
In de ene reactie staat dat er MINIMAAL 10 berichten moeten worden opgehaald, in de andere reactie staat er 10 (dus PRECIES 10) berichten moeten worden opgehaald. Wat moet het nu worden?
Kun je het nog een keer helder in 1 keer uitleggen? Ik ben even de draad kwijt.
@Kalle: Wanneer dat het geval is, heb je helemaal geen WHERE nodig. Gewoon sorteren op datum DESC en een LIMIT 10. Klaar ben je. Dat heeft Robert ook al geroepen.