Autor | Zpráva | ||
---|---|---|---|
drotik Profil * |
#1 · Zasláno: 3. 5. 2011, 00:52:23
Pre vyber clankov na uvodnej stranke pouzivam tabuľku: com_select, kde sa vyberaju zo všetkých článkov (tabuľka com_articles) len tie, ktorých i_id_article patria do určitých kategorii: i_id_category (tabuľka com_articles) + splňaju podmienku, že su najmladšie (d_sdate - zač. datum zobrazovania articlu ), sú publikované... + celkový počet článkov na úvodke je 8...
Môj syntax: select i_id_article from com_article where (i_id_category= 12 OR i_id_category= 23 OR i_id_category= 5 OR i_id_category= 13 OR i_id_category= 7 OR i_id_category= 26) and NOW() between d_sdate and d_edate and s_pub = "1" and i_id_language = 1 and s_top = "0" order by d_sdate desc limit 8 V súčasnosti mám najviac článkov z i_id_category= 23, preto niekedy zaplavia články tejto kategórie celú úvodku... PRETO: Prosím o napísanie nového syntaxu, kde bude pridaná podmienka: Nech sa zobrazujú medzi 8 článkami na úvodke napr. len 2 články z kategórie 23 a zvyšných 6 článkov nech sa doplní z ostatných kategórii podľa pôvodnych podmienok + nech sa články z kategórie 23 zobrazujú medzi ostatnými článkami podľa dátumu štartu publikovania, teda podľa rovnakých podmienok. Ja som laik, ten syntax mi písal jeden pán, na ktorého už žiaĺ nemám kontakt... |
||
MartinR Profil |
#2 · Zasláno: 3. 5. 2011, 08:48:25
Z hlavy mě napadá něco takového:
select i_id_article from com_article where NOW() between d_sdate and d_edate and s_pub = "1" and i_id_language = 1 and s_top = "0" AND (i_id_category=(select i_id_category from com_article where i_id_category= 23 LIMIT 2) OR i_id_category in (SELECT i_id_category from com_article where i_id_category in (5,7,12,13,26) LIMIT 6)) order by d_sdate desc |
||
drotik Profil * |
#3 · Zasláno: 3. 5. 2011, 09:19:58
Vyzera to logicky, ale môj web to nezobral. Preto prikladam aj php kod, ktory sa odvoláva práve com_select:
if (is_array($com_selects)) while (list($ci, $com_select) = each($com_selects)) { //-------------------------------------------- use pregenerated selects or not if (!$conf["index"]["use_generated_selects"]) { $results = $mysql->select($com_select["t_query"]); $query_range = ""; foreach($results as $result) $query_range .= $result[$com_select["t_field"]] . ","; $com_select["t_field_range"] = substr($query_range, 0, strlen($query_range) - 1); } $tpl->define_dynamic($com_select["t_template_source"], "content"); if (strlen($com_select["t_field_range"]) > 0) ReadArticles($com_select["t_field_range"], "30", true, $com_select["t_template_variable"], $com_select["t_template_source"], false); } + štruktúra tabuľky com_select - ide právek o riadok i_id_selec=3: ![]() Diki |
||
Časová prodleva: 14 let
|
0