Alle logica schijnt mij vandaag te ontgaan...
Ik heb een tabel waarin nieuwsitems opgeslagen worden.
Uit deze tabel wil ik voor de frontpage van een website alle nieuwsberichten van de huidige dag laten zien, zonder limiet.
Wanneer dat er echter minder zijn dan 3, wil ik dat opvullen met oudere berichten.
Dus, wanneer er vandaag 2 berichten zijn geplaatst en gisteren één, wil ik drie headlines:
- Vandaag
- Vandaag
- Gisteren
Maar ook wanneer er vandaag niets geplaatst is, wil ik drie headlines laten zien:
- Gisteren
- Eergisteren
- Eergisteren
Maar wanneer er vandaag veel gebeurd is en er worden 6 nieuwsberichten geplaatst, wil ik deze ook allemaal tonen.
Ik heb de volgende query:
Maar zo zie ik wanneer er de huidige dag 6 berichten zijn geplaatst, er maar 3.
Weet iemand hoe ik dit kan oplossen, en liefst in één query?
Edit: ik heb nu het volgende, dat werkt wel. Kan dit gemakkelijker?
Ik heb een tabel waarin nieuwsitems opgeslagen worden.
Uit deze tabel wil ik voor de frontpage van een website alle nieuwsberichten van de huidige dag laten zien, zonder limiet.
Wanneer dat er echter minder zijn dan 3, wil ik dat opvullen met oudere berichten.
Dus, wanneer er vandaag 2 berichten zijn geplaatst en gisteren één, wil ik drie headlines:
- Vandaag
- Vandaag
- Gisteren
Maar ook wanneer er vandaag niets geplaatst is, wil ik drie headlines laten zien:
- Gisteren
- Eergisteren
- Eergisteren
Maar wanneer er vandaag veel gebeurd is en er worden 6 nieuwsberichten geplaatst, wil ik deze ook allemaal tonen.
Ik heb de volgende query:
ASP:
1
| Set Nieuws = ExecuteQuery("SELECT TOP 3 * FROM nieuws ORDER BY created_datetime DESC") |
Maar zo zie ik wanneer er de huidige dag 6 berichten zijn geplaatst, er maar 3.
Weet iemand hoe ik dit kan oplossen, en liefst in één query?
Edit: ik heb nu het volgende, dat werkt wel. Kan dit gemakkelijker?
ASP:
1
2
3
4
5
6
7
8
| Set Aantal = ExecuteQuery("SELECT Count(NieuwsID) as antl FROM nieuws WHERE created_datetime LIKE '" & Left(Cstr(Date), 10) & "%'") lAantal = Clng(Aantal("antl")) 'aantal records voor vandaag tellen If lAantal <= 3 Then Set Nieuws = ExecuteQuery("SELECT TOP 3 * FROM nieuws ORDER BY created_datetime DESC") Else Set Nieuws = ExecuteQuery("SELECT * FROM nieuws WHERE created_datetime LIKE '" & Left(Cstr(Date), 10) & "%'" & " ORDER BY created_datetime DESC") End If |
[ Voor 44% gewijzigd door CodeCaster op 14-10-2005 11:08 ]
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...