Аз си продължавам да спамя. След последното писане (а май беше преди него) реших, че ми трябва единен стил на заявките и, че различията само ме объркват. Последните часове се занимавах с това. Промених втората заявка, като тя стана:
$godinass=run_q( " SELECT FROM_UNIXTIME( date_added, ' %M ' ) AS month FROM news WHERE FROM_UNIXTIME( date_added, ' %Y ' ) = ' $godina ' GROUP BY month DESC " );сиреч имаме вече лимитиране WHERE, защото това го знаем. Съответно отпадат гимнастиките с циклите и става просто:
while($row=mysql_fetch_assoc($godinass)) {
$date=($row[ ' month ' ]);
echo ' | Месец: ' .$date. ' |
' ;
echo ' |
' ;
}Тук има една малка особеност. Понеже проверявам с if къде да ходя се появи проблема с кастването. PHP винаги каства към интеджър, сиреч при тази проверка:
if($_GET[ ' page ' ]== " editnews " && $_GET[ ' godina ' ]>0 && $_GET[ ' mesec ' ]==0) {}Отново би се върнало тук след изпълнение, защото всеки текст е нула. Сещате се, че варианта е да го принудим да кастне към друго, като това друго може да е само булева математика, иначе към стринг ще се върне пак на старата песен. Или предварително си създаваме променлива:
$boolean=(boolean)$_GET[ ' mesec ' ];и тогава вече проверката не би минала:
if($_GET[ ' page ' ]== " editnews " && $_GET[ ' godina ' ]>0 && $boolean==0) {}и отиваме на следващата:
if($boolean==1){}Където вече имаме:
$godina =(int) $_GET[ ' godina ' ];
$mesec = $_GET[ ' mesec ' ];
$godinass=run_q( " SELECT FROM_UNIXTIME( date_added, ' %d ' ) AS DAY FROM news WHERE FROM_UNIXTIME( date_added, ' %Y ' ) = ' $godina ' AND FROM_UNIXTIME( date_added, ' %M ' ) = ' $mesec ' GROUP BY DAY DESC " );
while($row=mysql_fetch_assoc($godinass)) {
$den=($row[ ' DAY ' ]);
echo "
Ден: $den |
" ;
}
Сиреч просто добавяме новото вече налично условие с AND. От самата заявка си вземаме променливите. Важно! Горе със стрлен не съм защитил гет[месец], което е обезателно, че не знаем каква беля може да си докараме.
Едва днес на трезва глава, когато разсъдих, че трябва да се движа в една посока, последната заявка дойде почти от само себе си. Последно последствие за новацие- Трябва да пишем хомогенно

Иначе тези ифове могат да се избегнат. В оригиналната система jooroo е използвал отделни файлове, но цял файл само за една функция, ми се стори тъпо и за това всичко заедно и с иф. Ако не съм прав, някой да каже.
В крайна сметка най-важно е точно как ще си структорира човек заявката към базата, колкото по-подробна е тя, толкова по-малко PHP се налага да се употреби след това за обработката й.
Много благодаря на Гатакка и Керкенез, защото без тях трудно щях сам да прозрея, какво следва да се направи.
На всичкото отгоре сега кода ми е много по-чист, четим и малък от оригиналния.