Hmm, jeg ved ikke, men jeg lavede en vagtplan til en bar.
3 tabeller,
tjenere:
id, navn, farve (farve til den enkelte for at nemmere kunne se forskel)
vagttider:
id, tid, sorter (sorter for at kunne få vist tid i den rækkefølge man ville ha', 11-19, 19-03, 18-03 f.eks.)
vagtplan;
id, dato, tid_id, tjener_id
Med hensyn til helligdage lavede olsensweb.dk engang en funktion:
https://www.computerworld.dk/eksperten/spm/936923Bruger så php til at få vist aktuel måned, + 2 frem. (links)
sql til at hente:
$vagtsql = "SELECT t1.dato as dag, t2.tid as kl, t3.navn as tj, t3.farve as color
FROM vagtplan as t1, vagttider as t2, tjenere as t3
WHERE t1.tid_id = t2.id AND ".(isset($_GET["tjenerref"],$tjen_ar[$_GET["tjenerref"]]) ? "t3.id = ".$_GET["tjenerref"]." AND t1.tjener_id = ".$_GET["tjenerref"] : "t1.tjener_id = t3.id")."
AND t1.dato BETWEEN '".$startdato."' AND '".$lastdato."'
ORDER BY t1.dato, t2.tid ASC;";
$_GET["tjenerref" er få at kun vise for den enkelte
$tjen_ar[$_GET["tjenerref"] er et array med id, navn og farve på tjener
Sgu lidt rodet at sidde og kikke gamle koder :O)