Autor Zpráva
Heňo
Profil *
Zdravím,

mám určité položky (nazvime ich články) a z tých robím rebríček najčítanejších (dnes, týždeň, mesiac, celkovo...).. A mám ešte zvlášť tabuľku, kde zaznamenávam pre jednotlivé články počet zobrazení za jednotlivé dni (napr.: 9.12.2013 - 50; 10.12.2013 - 32 atď)...
Potom mám už samotné vylistovanie rebríčka - select je nižšie. A ja potrebujem aby sa ten rebríček filtroval podľa aktuálne otvorenej kategórie (články sú rozdelené do kategórii - kategória je uvedená v tabuľke samotných článkov)..

No a neviem ako mám tú kategóriu do toho selectu zahrnúť. Viem, že sa to nejak dá ale neviem ako :)

Tu je select rebríčka (je to select z tej druhej tabuľky, kde sú zaznamenané len čísla zobrazení):
SELECT id_clanku, SUM(pocet) AS pocet FROM zobrazenia WHERE datum > '$obdobie' GROUP BY id_clanku ORDER BY pocet DESC LIMIT 10

A ja tam potrebujem zahrnúť aby sa zobrazili len články, ktoré spadajú do kategórie, kt. je otvorená: $_GET['category']
V tabulke s článkami je stĺpec ,,kategoria"..

Ďakujem
Kubo2
Profil
Heňo:
... WHERE datum > ' $obdobie' AND kategoria = '{$_GET["category"]}' ... 
Samozrejme ten vstup treba ošetriť.
Lkopo
Profil *
Si si asi poriadne neprečítal, čo píše... Kategória je na druhej tabuľke, teda treba vytvoriť vzťah.

SELECT z.id_clanku, c.id AS clanok_id, SUM(z.pocet) AS pocet FROM zobrazenia z, clanky c WHERE z.datum > '$obdobie' AND z.id_clanku = c.id AND c.kategoria = '{$_GET["kategoria"]}'GROUP BY z.id_clanku ORDER BY pocet DESC LIMIT 10
Nie je to zrejme najlepšie riešenie, možno efektívnejšie by bolo cez JOINy ale toto sa mi píše rýchlejšie :D

ako to tu už bolo, treba si ošetriť vstup $_GET['kategoria'] a tiež si uprav tabulku clanky podla toho ako to máš ty, poprípade aj stĺpec ID ak ho máš inak.
Heňo
Profil *
Veľmi pekne ďakujem :)
Kubo2
Profil
Lkopo, Heňo:
Prepáčte mi to, moja chyba. Ale podstatu som vyjadril.

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: