Aha. Tak to bych mozna postupoval tak, ze si udelam sloupce den, mesic, rok, id_skupina.
Skupina je vlastne obsah. V pripade rozvrhu je v tabulce skupina napsano:
id_skupina, nazev, predmet, id_ucitel, Id_zadal, date_zadal (zadal / zablokoval mistnost)
cviceni, dejepis, Honzik, rozvrhar_pavel, datum
prednaska, dejepis, Honzik, admin_peter, datum
No, a ted jde o to, ze kdyz to nekdo bude chtit zmenit, tk v databazi v tabulce1 to smazes podle id_skupina
DELETE FROM tab1 WHERE id_skupina=1
DELETE FROM tab2 WHERE id_skupina=1
INSERT INTO tab1 ...den1
INSERT INTO tab1 ...den2
INSERT INTO tab2 WHERE id_skupina=1
A cele to udelas v jedne transakci, takze se nemuze stat, ze by ti nekdo prepsal.
A v php vyresis ty dny, dne v tydnu a pod a vytvoris prislusny pocet sql dotazu INSERT.
Ja bych to tam vlozil i se svatky, jen uzivateli bych ot nezobrazoval, opet vyfiltroval v php.
A nebo je ta druha moznost, ze tam budes zadavat primo DATETIME jako 1 sql dotaz.
Kazdopadne, rozvrhy res urcite podle obsazeni mistnosti. U nas mame treba ISMUNI a tam se resi rozvrh zvlast podle ucitele a zvlast obsazeni mistnosti. Jakoze to musis rezervovat uciteli, ze tehdy a tehdy uci a jeste rezervovat mistnost, kde :)
Tu bych pouzil spis nez resit pocet dnu mezi A a B.
k php je pomerne slusna dokumentace online, kde jsou priklady od lidi. A da se vygooglovat spousta prikladu (php4). Jen si je musis umet upravit pro tvou verzi php (php5.x nebo 7).
php.net/date
php.net/mktime
date('N', time()) // 1-7 (den v tydnu)
date('N', mktime(0, 0, 0, 7, 1, 2000)) // 1-7 z datumu 1.7.2000
Cyklem to budes zvysovat po jednom dni.
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997)); // automatically calculate the correct value for out-of-range input "Jan-01-1998"
To ti ale muzu kopirovat pasaze z dokumentace. To neni efektivni. Si to radeji projdi, to mas za 5-10 min, mi to trva tak 20 to vypsat sem :)