maximum7
Новичок
Архив документов
Добрый день,
Пытаюсь сделать архив документов. Есть таблица с документами th_documents, в которой дата создания документов храниться в DokStart. Нужно выбрать документы, сгруппировав по годам, после чего дополнительно нужно посчитать количество документов по месяцам. Плюс ко всему если в каком то месяце ничего не опубликовано всё равно нужно, чтобы месяц выводился. Пример того, что пытаюсь сделать: http://www.komodomedia.com/blog/ внизу страницы. Как такое реализовать?
но в результате:
Добрый день,
Пытаюсь сделать архив документов. Есть таблица с документами th_documents, в которой дата создания документов храниться в DokStart. Нужно выбрать документы, сгруппировав по годам, после чего дополнительно нужно посчитать количество документов по месяцам. Плюс ко всему если в каком то месяце ничего не опубликовано всё равно нужно, чтобы месяц выводился. Пример того, что пытаюсь сделать: http://www.komodomedia.com/blog/ внизу страницы. Как такое реализовать?
PHP:
$query = $DB->Query("
SELECT
YEAR(FROM_UNIXTIME(DokStart)) AS `year`,
COUNT(*) AS sum
FROM th_documents
WHERE DokStatus != 0
GROUP BY `year`
ORDER BY `year` DESC
");
while ($res = $query->FetchRow())
{
$qu = $DB->Query("
SELECT
DATE_FORMAT(FROM_UNIXTIME(DokStart), '%m') as month,
DATE_FORMAT(FROM_UNIXTIME(DokStart), '%Y') as goods,
COUNT(*) AS nums_month
FROM th_documents
WHERE
RubrikId = '2'
AND DokStatus != 0
AND DATE_FORMAT(FROM_UNIXTIME(DokStart), '%Y') = '".$res->year."'
GROUP BY `month`
ORDER BY DokStart ASC
");
while ($res2 = $qu->FetchRow())
{
$res2->month = str_ireplace($mid, $months, $res2->month);
array_push($dd2, $res2);
}
$res->months = $dd2;
array_push($dd, $res);
}
PHP:
Array
(
[0] => stdClass Object
(
[year] => 2010
[sum] => 68
[months] => Array
(
[0] => stdClass Object
(
[month] => Январь
[goods] => 2010
[nums_month] => 17
)
[1] => stdClass Object
(
[month] => Февраль
[goods] => 2010
[nums_month] => 23
)
[2] => stdClass Object
(
[month] => Март
[goods] => 2010
[nums_month] => 16
)
[3] => stdClass Object
(
[month] => Апрель
[goods] => 2010
[nums_month] => 12
)
)
)
[1] => stdClass Object
(
[year] => 2009
[sum] => 181
[months] => Array
(
[0] => stdClass Object
(
[month] => Январь
[goods] => 2010
[nums_month] => 17
)
[1] => stdClass Object
(
[month] => Февраль
[goods] => 2010
[nums_month] => 23
)
[2] => stdClass Object
(
[month] => Март
[goods] => 2010
[nums_month] => 16
)
[3] => stdClass Object
(
[month] => Апрель
[goods] => 2010
[nums_month] => 12
)
[4] => stdClass Object
(
[month] => Январь
[goods] => 2009
[nums_month] => 36
)
[5] => stdClass Object
(
[month] => Февраль
[goods] => 2009
[nums_month] => 38
)
[6] => stdClass Object
(
[month] => Март
[goods] => 2009
[nums_month] => 30
)
[7] => stdClass Object
(
[month] => Апрель
[goods] => 2009
[nums_month] => 22
)
[8] => stdClass Object
(
[month] => Май
[goods] => 2009
[nums_month] => 22
)
[9] => stdClass Object
(
[month] => Июнь
[goods] => 2009
[nums_month] => 13
)
[10] => stdClass Object
(
[month] => Июль
[goods] => 2009
[nums_month] => 19
)
[11] => stdClass Object
(
[month] => Август
[goods] => 2009
[nums_month] => 11
)
[12] => stdClass Object
(
[month] => Сентябрь
[goods] => 2009
[nums_month] => 10
)
[13] => stdClass Object
(
[month] => Октябрь
[goods] => 2009
[nums_month] => 14
)
[14] => stdClass Object
(
[month] => Ноябрь
[goods] => 2009
[nums_month] => 16
)
[15] => stdClass Object
(
[month] => Декабрь
[goods] => 2009
[nums_month] => 18
)
)