Komende 5 agendapunten vanaf geselecteerde datum
De bedoeling is als volgt: er kan geklikt worden op een datum van een kalender. Vervolgens moeten de eerste 5 activiteiten worden laten zien vanaf de geselecteerde datum. Op dit moment worden alleen de activiteiten van de geselecteerde dag getoond. Mijn vraag is hoe kan ik dit in onderstaande query oplossen?
// output
Indien het niet duidelijk is, laat mij maar weten.
B.v.d.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
$query = "
SELECT
a.agenda_id,
CONCAT(
(DATE_FORMAT(a.datum, '%e ')),
(CASE DATE_FORMAT(a.datum, '%c ')
WHEN '1' THEN 'januari'
WHEN '2' THEN 'februari'
WHEN '3' THEN 'maart'
WHEN '4' THEN 'april'
WHEN '5' THEN 'mei'
WHEN '6' THEN 'juni'
WHEN '7' THEN 'juli'
WHEN '8' THEN 'augustus'
WHEN '9' THEN 'september'
WHEN '10' THEN 'oktober'
WHEN '11' THEN 'november'
WHEN '12' THEN 'december'
END),
(DATE_FORMAT(a.datum, ' %Y ')),
(DATE_FORMAT(a.datum, ' - %H:')),
(DATE_FORMAT(a.datum, '%i'))
) AS datumNL, a.agendapunt, a.info
FROM
agenda a
WHERE
a.datum = '".$dateSelection."'
LIMIT
5
";
?>
$query = "
SELECT
a.agenda_id,
CONCAT(
(DATE_FORMAT(a.datum, '%e ')),
(CASE DATE_FORMAT(a.datum, '%c ')
WHEN '1' THEN 'januari'
WHEN '2' THEN 'februari'
WHEN '3' THEN 'maart'
WHEN '4' THEN 'april'
WHEN '5' THEN 'mei'
WHEN '6' THEN 'juni'
WHEN '7' THEN 'juli'
WHEN '8' THEN 'augustus'
WHEN '9' THEN 'september'
WHEN '10' THEN 'oktober'
WHEN '11' THEN 'november'
WHEN '12' THEN 'december'
END),
(DATE_FORMAT(a.datum, ' %Y ')),
(DATE_FORMAT(a.datum, ' - %H:')),
(DATE_FORMAT(a.datum, '%i'))
) AS datumNL, a.agendapunt, a.info
FROM
agenda a
WHERE
a.datum = '".$dateSelection."'
LIMIT
5
";
?>
// output
Indien het niet duidelijk is, laat mij maar weten.
B.v.d.
Gewijzigd op 01/01/1970 01:00:00 door Marco
Ik denk dat je beter de keuze in php kan doen das een stuk makkelijker
Zou je een voorbeeld kunnen geven? b.v.d
WHERE a.datum >= '".$dateSelection."' ORDER BY a.datum ASC LIMIT 5
Je hebt niet als die WHEN's nodig. Gebruik gewoon ELT:
@ Daniel: "makkelijker" is een relatief begrip. MySQL heeft veel meer mogelijkheden om met datums te rekenen dan PHP.
Edit: had je vraag verkeerd gelezen. Zie post van Robert Deiman voor het goede antwoord ;-)
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
ELT(
(DATE_FORMAT(datumtijdveld, '%w') + 1),
'zondag',
'maandag',
'dinsdag',
'woensdag',
'donderdag',
'vrijdag',
'zaterdag'
) AS weekdag
(DATE_FORMAT(datumtijdveld, '%w') + 1),
'zondag',
'maandag',
'dinsdag',
'woensdag',
'donderdag',
'vrijdag',
'zaterdag'
) AS weekdag
@ Daniel: "makkelijker" is een relatief begrip. MySQL heeft veel meer mogelijkheden om met datums te rekenen dan PHP.
Edit: had je vraag verkeerd gelezen. Zie post van Robert Deiman voor het goede antwoord ;-)
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
@Jan
Dat van die elt is inderdaad wel een goede. Echter heb je niet de 1e 5 dagen, maar de 1e 5 activiteiten die opgevraagd moeten worden. Dus die datediff is nergens voor nodig. Overigens is DATEDIFF ook een MySQL functie, je kan toch ook zonder DATEDIFF met datums rekenen?
Dat van die elt is inderdaad wel een goede. Echter heb je niet de 1e 5 dagen, maar de 1e 5 activiteiten die opgevraagd moeten worden. Dus die datediff is nergens voor nodig. Overigens is DATEDIFF ook een MySQL functie, je kan toch ook zonder DATEDIFF met datums rekenen?
Ik had hem al gezien Robert ;-) Zie mijn edit.
Bedankt mensen,
Stom dat ik dat niet gezien had; ELT is inderdaad een mooie verbetering.
Stom dat ik dat niet gezien had; ELT is inderdaad een mooie verbetering.




