Spojení dat z tabulek a srovnání podle datumu
- Zuben45
- Člen | 268
Dobrý den,
již delší dobu řeším problém jak bych měl spojit data z db a poskládat
je podle datumu.
Mám 3 tabulky novinky, recenze, clanky. (data které potřebuji vypsat mají stejné názvy v každé tabulce, jsou to id, name, text, date)
z toho bych potřeboval, aby se mi vypsalo 5 výpisů ze všech tabulek a to podle datumu.
Např. budu mít novinky z datumů 24.3.2013, 22.3.2013, 1.1.2014, 6.2.2014, 29.3.2014 a to samé u zbývajícíh dvou tabulek. Z toho bych potřeboval, aby se vypsalo novinka z data 29.3.2014 pak recenze z 29.3.2014 pak článek z 29.3.2014,… pořadí by se určilo samo podle toho data.
Takže by se vypisovalo např
novinka, recenze, článek, recenze, článek
a nebo např.
recenze, článek, článek, článek, novinka
Napadlo mě to udělat přes array, ale ať jsem zkoušel
jak chtěl, pořád nic.
Neví někdo jak by to bylo možné udělat ?
Editoval Zuben45 (29. 3. 2014 16:05)
- zdrhal
- Člen | 42
Taky te zdravím,
Osobně bych v modelu vytahal z db tabulky novinky, recenze a clanky.
Prezenteru bych to predal a udelal bych pole s datumy ze kterych chces vypisovat. A srovnal si tabulky novinky, recenze a clanky dle datumu.
V sablone bych pak vytvoril smycku pro vypis. Mozna je to spatne jsem taky zacatecnik tak to ber s rezervou.
EDIT:
Me se moc nezda tva DB. Ja osobne bych db volil publikace
(id, id_druh, autor, datum, text) a
druha tabulka druhypublikaci (id, druh). Pak
bys to normos radil dle datumu a nasledne treba dle id. (takhle me to prijde
chytre, nevim proc db trhat takhle na vice casti)
Editoval zdrhal (29. 3. 2014 17:48)
- Zuben45
- Člen | 268
zdrhal napsal(a):
Taky te zdravím,
Osobně bych v modelu vytahal z db tabulky novinky, recenze a clanky.
Prezenteru bych to predal a udelal bych pole s datumy ze kterych chces vypisovat. A srovnal si tabulky novinky, recenze a clanky dle datumu.
V sablone bych pak vytvoril smycku pro vypis. Mozna je to spatne jsem taky zacatecnik tak to ber s rezervou.
EDIT:
Me se moc nezda tva DB. Ja osobne bych db volil publikace (id, id_druh, autor, datum, text) a druha tabulka druhypublikaci (id, druh). Pak bys to normos radil dle datumu a nasledne treba dle id. (takhle me to prijde chytre, nevim proc db trhat takhle na vice casti)
Díky, zkusím to,.
K editu, no právě mám tam hromadu položek, takže gigovou tabulku opravdu nechci :), navíc by dlouho trvalo než by to všechno projelo :)
Editoval Zuben45 (29. 3. 2014 18:50)
- Zuben45
- Člen | 268
motorcb napsal(a):
Udělal bych UNION select
http://www.linuxsoft.cz/article.php?…
díky, funguje, jen šlo by nějak zjistit z jaké tabulky to vytáhlo ?, kvůli odkazu a templatu to potřebuji
- Zuben45
- Člen | 268
zdrhal napsal(a):
Ok jak myslis, me to prijde ok jen pokud by jsi mel u tech 3 tabulek odlisnou strukturu. Kdyz to ted budes ruzne spojovat tak stejne si myslim ze ztratis na vykonu, ale muzu se mylit. Tak snad to nejak vyresis, ten 3 koment vypadal solidne, ze by ti mohl pomoct. Hodně zdaru.
No asi jo, no až tak moc to není, dal jsem limit, tak snad to pomůže :), a už jsem to vyřešil, všude jsem přidal colum table_name s defaultní hodnotou názvu tabulky a fakční to jak nikdá :)
- greeny
- Člen | 405
Tos nemusel přidávat, v tom článku na linuxsoftu je to popsaný.
SELECT id, title, 'article' AS table_name FROM article UNION ALL SELECT id, title, 'news' AS table_name FROM news UNION ALL SELECT id, title, 'recensions' AS table_name FROM recensions
Editoval greeny (30. 3. 2014 0:20)