Autor | Zpráva | ||
---|---|---|---|
Manny Profil * |
#1 · Zasláno: 25. 4. 2012, 10:03:31
Mám zřejmě poměrně častý problém, přesto jsem na něj tady nenašel spolehlivé řešení.
Mám 2 tabulky s různým typem akcí (názvy) ale stejnou strukturou (id, od, do, hodina nazev, text) Potřeboval bych zobrazit podle datumu (od) 3 aktuální akce. Problém je v tom, že v jeden den se mohou vyskytovat oba druhy akcí nebo jen jeden z nich. Cílem je tedy na vystupu, v rámci jednoho cyklu, zobrazit pod jedním datumem jednu nebo dvě akce. pokusil jsem se o toto: $sql = "SELECT if(akcemuzika.od = akcejidlo.od, akcemuzika.od, akcejidlo.od) AS od, akcemuzika.hodina, akcemuzika.nazev, akcemuzika.text, akcejidlo.hodina, akcejidlo.nazev, akcejidlo.text FROM akcemuzika,akcejidlo WHERE od >= CURDATE() ORDER BY od LIMIT 3"; |
||
mimochodec Profil |
#2 · Zasláno: 25. 4. 2012, 10:10:51
Myslím že potřebuješ http://dev.mysql.com/doc/refman/5.0/en/union.html
|
||
Tori Profil |
#3 · Zasláno: 25. 4. 2012, 10:25:38
Manny:
„Mám 2 tabulky s různým typem akcí (názvy) ale stejnou strukturou“ A když budete chtít přidat další typ akce, tak založíte další totožnou tabulku? Je lepší udělat z toho jen jednu tabulku, a pro typ akce přidat další sloupec, třeba typ ENUM('jidlo','muzika')
|
||
Manny Profil * |
#4 · Zasláno: 25. 4. 2012, 10:30:55
Tori:
„Je lepší udělat z toho jen jednu tabulku, a pro typ akce přidat další sloupec,“ To mě napadlo, udělat sloupec s příznakem. Ale 2 tabulky mi přišly přehlednější. |
||
Tori Profil |
#5 · Zasláno: 25. 4. 2012, 10:36:16
Manny:
Když si jednu tabulku seřadíte nejdřív podle typu akce a pak podle data, vypadá to stejně přehledně jako dvě samostatné tabulky pod sebou. Ale s jednou se líp pracuje. |
||
mimochodec Profil |
#6 · Zasláno: 25. 4. 2012, 10:39:21
Manny:
„Ale 2 tabulky mi přišly přehlednější.“ Jestli přehlednější, nevím. Teď právě řešíš první negativní důsledek toho, že máš data vedvou tabulkách. Pravděpodobně není poslední. |
||
Manny Profil * |
#7 · Zasláno: 25. 4. 2012, 12:37:31
Tori, mimochodec:
Pěkně jste mi to nandali:-) Ve skutečnosti to mám stále v jedné tabulce. Takže přidám sloupec s příznakem. Jak mám tedy vyřešit můj problém, kdy mám třeba 2 akce v jeden den a datum tedy chci vypsat pouze jednou. (do teď vypisuji datum s každým řádkem tabulky) Lze to nějak řešit už na straně mysql nebo to je lepší až podmínkou v php? |
||
Kajman Profil |
#8 · Zasláno: 25. 4. 2012, 13:32:38
Lepší je to řešit až v php.
|
||
Manny Profil * |
#9 · Zasláno: 25. 4. 2012, 13:46:18
Kajman:
„Lepší je to řešit až v php.“ Už jsem to tak udělal. Na konci cyklu uložím datum do proměnné a na začátku zkontroluji, jestli se nerovná s novým. Vlastně ani nepotřebuji další sloupec s typem akce. Díky všem. |
||
Časová prodleva: 12 let
|
0