Autor Zpráva
koudelacek
Profil *
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 *
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: