Tak kdyz jsem koukal do toho pluginu verze 2.0, tak bych k nemu mel nekolik pripominek:
1. práce s časem - to je něco téměř nepochopitelného - např. z aktualizace.php řádky 151-153
$rozdil_rok=366*(strftime('%Y',strtotime($dotaz_data['datum']))-strftime('%Y',strtotime($GLOBALS['muj_datum'])));
$rozdil=strftime('%j',strtotime($dotaz_data['datum']))-strftime('%j',strtotime($GLOBALS['muj_datum']))+$rozdil_rok;
if ($rozdil>=0):
lze nahradit mnohem kratším a přehlednějším (a navíc trvale počítat s tím, že rok má 366 dní je taky dost divné)
if ( strtotime($dotaz_data['datum']) >= strtotime($GLOBALS['muj_datum']) ):
intervaly datumů lze řešit v php pomocí strtotime('-7 day')
2. kromě toho by bylo mnohem vhodnější to filtrování udělat už na úrovni SQL, aby se nevracely všechny záznamy, ale jen ty, které se mají zobrazit a celé filtrování v php si tím ušetřit (a navíc tím ušetřit i spoustu výkonu serveru, když nemusí z SQL načítat a držet v paměti všechny záznamy)
v MySQL jsou na to funkce DATE_ADD a DATE_SUB
3. jak už jsem psal vedle, tak bych doporučoval zrušit funkci NactiKonfigHod a zjednodušit to na jeden SQL dotaz, který rovnou naplní všechny proměnné, když se stejně vždy všechny načítají
4. v aktualizace-tabulek.php je $pole - dost nepřehledná proměnná
lépe je $pole['akw_sekce_cla_ne']=1 a pak použít cyklus foreach, ktery projde vsechny prvky pole a nemusi se zjistovat jejich pocet funkci count()
a zase asi byl lepší jen jeden SQL dotaz, který by to, co najde v db v $pole funkcí unset() zrušil a nakonec by se provedl INSERT hodnot, které by v tom poli zbyly, místo toho, aby se pro každou hodnotu provaděl dotaz a zkoumal, jestli je v tabulce nebo nikoliv - a lze udelat jeden insert, ktery bude vkladat vice hodnot najednou :
INSERT INTO config VALUES('NULL', 'akw_sekce_cla_ne', '1'), ('NULL', 'akw_sekce_cla', '2'), ('NULL', 'akw_sekce_kom', '3')
5. SELECT * FROM je zbytecne, když je potreba jen hodnota z IDC, tak je mnohem lepsi pouzit SELECT idc FROM, opet se tim zmensi narocnost na pamet, kterou php potrebuje a usetri se tim vykon SQL, kdyz bude vracet mene dat
Celkem upraveno 7×. Poslední úprava MirekS v 28.05.2009 13:34.