Door
christoph e
op 04-05-2014 11:58
gewijzigd op 04-05-2014 11:58
646 views
Hallo
Ik ben aan het werk met een kalender, hij zou als er een evenement bezig is een rondje rond het vakje hebben.
Ik sla het begin uur en het einduur op als een timestamp, het kan dus zijn dat het evenement 3 dagen duurt.
Nu weet ik echter niet hoe ik dit het best kan opvragen, onderstaande code werk maar hij geeft geen rondje rond de eerste dag, ook als het evenement maar 1 dag duurt krijgt hij geen rondje.
Nee hoor heb je mijn eerdere voorstel wel geprobeerd?
Doe anders eens een echo van je query en van $start_timestamp
<?php
echo "SELECT id FROM kalender WHERE ".$start_timestamp." between begin_timestamp and eind_timestamp";
echo '<br>'.$start_timestamp = mktime(0, 0, 0, $iMonth, $iDay, $iYear);
?>
Met de volgende query genereer je een 'view' met de dagen van de maand:
SELECT
@datum := @datum + INTERVAL 1 DAY datum
FROM
products, (SELECT @datum := '2014-04-01' - INTERVAL 1 DAY) var
LIMIT 30
Voor de tabel products kan je elke tabel gebruiken die meer dan 31 records bevat.
Dit gaan we dan gebruiken in combinatie met een join:
SELECT
d.datum,
COUNT(k.id) AS aantal
FROM
(SELECT
@datum := @datum + INTERVAL 1 DAY datum
FROM
products, (SELECT @datum := '2014-04-01' - INTERVAL 1 DAY) var
LIMIT 30) d
LEFT JOIN
kalender k
ON d.datum BETWEEN k.begin_timestamp AND k.eind_timestamp
GROUP BY
d.datum