Autor Zpráva
Anonymní
Profil *
Ahoj,
mám následující tabulky a potreboval bych je vypsat v php tak, aby byly propojene hodiny v rozvrhu se zkratkou v predmetech.

PREDMETY
========
ID, NAZEV, ZKRATKA, VYUCUJICI

1,Ekonomika,EKO,Novák
2,Matematika,MAT,Němec
3,Český jazyk,CJL,Svobodová
4,Algoritmizace,ALG,Černý

ROZVRH
=======
DEN, HODINA1, HODINA2, HODINA3, HODINA4, HODINA5, HODINA6

1,2,3,4,4,1,1
2,3,3,2,4,2,1
3,1,2,4,3,4,4
atd...

Napsal jsem tenhle dotaz, ale nevypise to vsechny predmety v ten den:
SELECT hodina1,hodina2,hodina3,hodina4,hodina5,hodina6,nazev,zkratka,vyucujic i FROM rozvrh r, predmety p WHERE (r.hodina1=p.id OR r.hodina2=p.id OR r.hodina3=p.id OR r.hodina4=p.id OR r.hodina5=p.id OR r.hodina6=p.id) AND r.den='2'

Něvěděl by někdo z Vás, jak to udělat? Jsem začátečník, takže bych potřeboval poradit.

Díky, Martin
Joker
Profil
To není moc chytré rozvržení... co když budete chtít nějaký den víc nebo míň než 6 hodin?

Lepší struktura by byla takto:

PREDMETY
id
nazev
zkratka
vyucujici

ROZVRH
(id)
den
poradi
id_hodiny


id by nemuselo být, pokud máte jen jeden rozvrh.

A vypsání seznamu předmětů v daný den by vypadalo nějak takto:

SELECT p.nazev FROM rozvrh r JOIN predmety p ON r.id_hodiny = p.id WHERE r.den=$den ORDER BY poradi ASC

Výsledkem by měly být předměty v pořadí jak jdou za sebou
Kajman_
Profil *
Nejjednodušší bude udělat rozvrh do jiné tabulky...

Den, hodina, predmet
1 1 2
1 2 3
1 3 4
1 4 4
...

Nebudete omezen na šest hodin a bude s tím jednoduše pracovat.

V nynějším pojetí, je asi nutné propojit tabulku s šesti instancemi tabulky předměty nebo spojit šest dotazů pomocí unionu a získat tak ekvivalent nového návrhu tabulky.
Anonymní
Profil *
Moc děkuju za radu, zkusim teda zmenit strukturu tabulky rozvrh.
mila
Profil
Tohle je jeden y neloblíbenějších příkladů, při výkladu relačních databází:)
Když máž v tabulce sloupce pojmenované neco1, neco2, neco3, ... skoro vždycky to chce novou tabulku
Joker
Profil
V tomhle případě ale stačilo jen změnit logiku té staré tabulky ;)
poznámka: v tom mém návrhu jsem nezvolil úplně nejlepší pojmenování sloupců, ale jinak je to tatáž struktura jako navrhuje Kajman_
Kajman_
Profil *
poznámka k poznámce: no, kdybych si refreshul tab, když jsem se k tomuhle tématu tenkrát dostal a viděl bych tam správnou radu, tak už bych nic nepsal :-)

Ale možná by bylo úplně nejlepší tam dát ještě sloupeček se třídou a sloupeček pro určení skupiny pro možné rozdělení třídy.
mila
Profil
V tomhle případě ale stačilo jen změnit logiku té staré tabulky ;)
Jen dokud nechceš k rozvrhu uložit, pro jakou je třídu, pro který rok, kdy byl vytvořen, ...
Toto téma je uzamčeno. Odpověď nelze zaslat.