Autor | Zpráva | ||
---|---|---|---|
koudelacek Profil * |
#1 · Zasláno: 19. 2. 2015, 13:48:31
Zdravím Vás,
mohli byste mi poradit s následujícím? V DB mám tabulku s články, ve kterých jsou dva sloupce - kategorie, subkategorie. Nyní se snažím na konci stránky vypsat 4 co nejrelevantnější články - "Mohlo by Vás zajímat". Právě teď tam vypisuji články, které jsou ve stejné kategorii, jako článek, které je čtený a chtěl bych to ještě vylepšit tak, aby to vypisovalo články následovně: Otevřít KATEGORII - vypsat prvně články, které jsou ve stejné KATEGORII i ve stejné SUBKATEGORII, a pokud jich je méně než 4, tak začít vypisovat další články z KATEGORIE. Snad rozumíte co tím myslím, případně se ptejte. A předem děkuji. |
||
juriad Profil |
Takto:
SELECT * FROM clanky WHERE kat = $kat ORDER BY subkat = $subkat DESC, name V dotazu se dopočítává jestli je článek ve stejné subkategorii (subkat = $subkat bude mít 1) nebo ne (bude 0) a stačí články správně seřadit - napřed 1 a pak 0. |
||
koudelacek Profil * |
#3 · Zasláno: 19. 2. 2015, 14:28:49
Díky, super, funguje.
Chci se ještě doplňkově zeptat na jednu záludnost. Ty subkategorie jsou rozděleny na několik celků, ale ty celky nemají vlastní sloupec, takže struktury vypadá nějak takto: kategorie - sub1, sub2, sub3, sub4, sub5, sub6, sub7 a např sub1, sub2, sub3 spadají do jednoho celku - ty celky řeším individuálně v PHP a když zadávám ten dotaz, tak vypisuju vše z kategorie a subkategorií, které jsou v daném celku.. A když se stane situace, že v celku, kde je sub1, sub2, sub3 není dohromady více než 4 články, tak se vypíšou např. jen 3. Můj dotaz zní - je lepší pro tento případ spočítat počet řádku a udělat doplňující query, nebo je možné přidat pro tento případ ještě něco do toho dotazu předtím. |
||
Časová prodleva: 10 let
|
0