Znova Ahoj, potřeboval bych nějak navést, jak dosáhnou toho, že když
mám na určitý den nějakou událost, aby mi to např zezelenalo, tudíž
potřebuji nastavit nějaký <td class>. Mám to do určité míry
rozpracované, ale vždy, když si vytvořím více než jednu událost,
políček nezezelená více, ale formát zmizí.
Zkusil jsem: Zkoušel jsem tohle řešit nějak takto:
$result = Db::query('
SELECT name, notes
FROM udalosti
WHERE date =?
', $_GET["ymd"]);
session_start();
$_SESSION["result"] = $result;
Do $result se mi uloží počet ovlivněných řádků. To jsem si pak poslal
pomocí session_start() do jiného php souboru a nastavil jsem, že pokud je
$result > 0, <td class=event>.
Jenže pak mi došlo, že chci $result dřív, něž se tam vůbec něco
zapíše.
Chci docílit: Snažím se zkrátka dosáhnout, abych dnu, která má
nějakou událost, dal nějakou <td class> a mohl tomu třeba změnit
barvu.. závoveň aby políčka nemizely, ale pořád přibývaly. Prostě když
budu mít 3 události na 3 různé dny, budou svítit 3 políčka kalendáře
jinak.
Popřípadě jestli to na to jdu vůbec dobře...
Když se najde někdo, kdo mě zkusí nějak navést, budu vděčný..
Matěji, přijde mi, že v tom máš trochu nepořádek... jen tak na úvod
prošel jsi si důkladně zdejší tutoriály na cykly a if konstrukce, a pak na
pole, případně DB a jak z nich získat informace?
Pokud ano doporučuji zopakovat...
zkusím tě navést obecně popisem co dělá tvůj kód... pak to totiž dle
mne bude mít přínos, než ti napsat řešení..
for cyklus máš patrně pro procházení jednotlivých dnů v daném
měsíci, pokud chápu správně...že?
další řádek vyrobí požadované datum
další 3 řádky řeší pokud je datum dneškem tak to, co se bude zobrazovat
v kalendáři má styl today s odkazem...
další 3 řádky řeší pokud není dnes ale platí ...... a tato podmínka mi
docela záhada ..... tak se jedná patrně o den události a styl je event a
odkaz je na ukaž událost...
a když nevyjde ani jedno z předchozího, tak další 3 řádky vloží styl
obsazeno a to opět s odkazem na ukaž událost s datem
v kódu co ti vypisuje kalendář se nikde neřeší, zda pro dané datum,
které si vyrobil na 2. řádku existuje v DB alespoň jedna událost .... v
tomto místě ses na to DB vůbec nezeptal.... takže se vygeneruje celý
kalendář bez této informace...
Prečo nepoužívaš nejaký template engine? Toto je také error prone
zverstvo, že po dokončení projektu zistíš, že minimálne 50% času vývoja
si strávil nad hľadaním chýb.
Rozumím..
půjdu postupně.. cyklus prochází dny v měsíci, to chápeš správně.
Další 3 řádky zobrazují dnešní den. Ty 3 řádky potom, tam se snažím
řešit zobrazení té události. Ten odkaz s datem je všude, protože ukazuji
na ten den, i když tam událost není, což se tam samozřejmě vypíše... v
tom souboru showevent.php mám sql příkaz, který když na daný den je
událost, událost vypíše, jinak sdělí, že zde událost není. No a snažil
jsem se tam zeptat pomocí funkce Db::query, což mi vrátí, jestli na daný
den událost vypíše. Jenže ten sql příkaz se přece spustí až po tom, co
rozkliknu vybraný den, tudíž mi to správně vypisovalo undefined index,
když jsem to použil v tom cyklu. Snažil jsem se to popsat co jsem zkoušel a
že mi to nešlo. Chápu že v tom mám velký zmatek, ale snažím se to nějak
urovnat a na tohle nemohu přijít. Já teda doufám, že jsem to vysvětlil
nějak srozumitelně, jestli něco chápu špatně, tak to bude zřejmě kámen
úrazu.
A nebylo by lepší generovat odkaz jen do toho políčka, pro který
existuje alespoň nějaká událost? Než kliknout a zjistit, že žádná
událost tam není?
Ale zpět k myšlence dotazování se DB v cyklu. Ano to je správná cesta,
pokud chceš docílit toho, aby se kalendář podle toho zda existuje událost
zbarvil.
(Sice osobně bych to dělal jinak, jedním dotazem na celý měsíc a dotazoval
se reindexovaného pole přes datum, případně objektu, nebo úplně jinak
..... ale to je teď vedlejší)
ale vzhledem k tvým znalostem .... to můžeš pořešit tak, že se dotážeš
DB v cyklu na každý jednotlivý den podobně jak to máš v tom souboru
showevent a dostaneš info uvnitř cyklu, zda pro aktuální datum jsou nebo
nejsou události... podle toho zvolíš styl políčka
Když se na to dívám, tak to bude lepší, udělat odkaz jen na políčka
kde událost je...Jinak díky, já jsem si sice posílal nějaké proměnné,
ale zeptat se znovu v tom cyklu je vlastně jasné. No.. musím na znalostech
ještě dost popracovat.. Ale cením tvůj přístup, díky.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.