Помощник
|
Архив. По годам и месяцам |
НЕПЛОХОЙ
|
Сообщение
#1
|
||
|
|
||
|
|||
v1ex |
11.7.2009, 18:57;
Ответить: v1ex
Сообщение
#2
|
|
Копайте в сторону GROP+ORDER BY в SQL
|
|
|
НЕПЛОХОЙ
|
Сообщение
#3
|
|
написать то написал... работает, как надо, только что-то мне подсказывает что можно как то это оптимизировать
<?php
$query = mysql_query("SELECT date_format(date_end, '%Y') as date_year FROM `ТАБЛИЦА` GROUP BY date_year")); while($result = mysql_fetch_array($query)) { echo "<ul><li>".$result['date_year']."</li>"; $y1 = $result['date_year']."-01-01 00:00:00"; $y2 = $result['date_year']."-12-31 00:00:00"; $query2 = mysql_query("SELECT date_format(date_end, '%m') as date_mes FROM `ТАБЛИЦА` WHERE date_end >= '".$y1."' and date_end <= '".$y2."' GROUP BY date_mes"); while($result2 = mysql_fetch_array($query2)) { echo "<ul><li>".$result2['date_m']."</li>"; $y3 = $result['date_year']."-".$result2['date_mes']."-01 00:00:00"; $y4 = $result['date_year']."-".$result2['date_mes']."-31 00:00:00"; echo "<ul>"; $query3 = mysql_query("SELECT * FROM `ТАБЛИЦА` WHERE date_end >= '".$y3."' and date_end <= '".$y4."' ORDER BY date_end"); while($result3 = mysql_fetch_array($query3)) { echo "<li>".$result3['name']."</li>"; } echo "</ul></ul>"; } echo "</ul>"; } ?> |
|
|
ZiTosS |
12.7.2009, 11:37;
Ответить: ZiTosS
Сообщение
#4
|
|
Евгений, А может попробовать так?
<?php $events = array(); $sql = "SELECT YEAR(date_end) as date_year FROM [table] GROUP BY (date_year)"; $query = mysql_query($sql); while($result = mysql_assoc_array($query)) $events[$result['date_year']] = array(); foreach($events as $key => $value) { $sql = "SELECT MONTH(date_end) as date_month FROM [table] WHERE YEAR(date_end)='{$key}' GROUP BY (date_month)"; $query = mysql_query($sql); while($result = mysql_assoc_array($query)) $events[$key][$result['date_month']] = array(); } foreach($events as $key => $value) { foreach($value as $key2 => $value2) { $sql = "SELECT DAY(date_end) as date_day FROM [table] WHERE YEAR(date_end)='{$key}' AND MONTH(date_end)='{$key2}' ORDER BY date_end"; $query = mysql_query($sql); while($result = mysql_assoc_array($query)) $events[$key][$key2][] = $result; } } ?> Как выводить с помощью foreach думаю сам додумаешься. Конечно не знаю какова будет нагрузка на базу данных при таких частых запросах во вложенном цикле. Поблагодарили: (0) |
|
|
НЕПЛОХОЙ
|
Сообщение
#5
|
|
Спасибо, ZiTosS, чуть позже попытаюсь разобраться
Оффтоп: как в теге [code][/code] делать отступы ровные? tab нельзя нажимать, пробелы ставить? |
|
|
ZiTosS |
12.7.2009, 12:36;
Ответить: ZiTosS
Сообщение
#6
|
|
|
Евгений,
Я сначала в блоконте набираю или прям в bb-тегах пробелами. p.s. Код на практике не проверял, но вроде должен работать. Советую прежде чем его испытывать, Проверять каждое действие. Может моя логика немного не совпадает с практикой.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Статьи из веб-архив Уник. от 90% |
59 | Primetime | 54093 | 17.2.2021, 21:33 автор: traveliver |
|
Продам архив сайта на WP Сайты на WP |
14 | Tutich | 7581 | 11.7.2017, 7:34 автор: Tutich |
|
Зарабатывайте на файлах - платный архив Zipcoin.ru | 43 | ZipCoin | 16369 | 29.9.2010, 20:51 автор: Vova2 |
|
Продаю Обучающий Архив По Созданию Прибыльных Сайтов На Wordpress | 27 | alexmoon | 9233 | 14.7.2010, 18:00 автор: alexmoon |
Текстовая версия | Сейчас: 25.4.2024, 12:33 |