X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Архив. По годам и месяцам
НЕПЛОХОЙ
НЕПЛОХОЙ
Topic Starter сообщение 11.7.2009, 16:39; Ответить: НЕПЛОХОЙ
Сообщение #1


Как сделать так, чтобы записи выводились в соответствии со следующей иерархией

ГОД
--- Январь
-------- Событие1
-------- Событие2
--- Февраль
-------- Событие3
и т.д.

после с датой имеет тип datetime (т.е. 2009-04-08 00:00:00)
Делаю на php+mysql

Когда то давно видел по видео Евгения Попова, как он делал то что мне надо, но из-за этого не хочется весь видеокурс качать с инета...
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
v1ex
v1ex
сообщение 11.7.2009, 18:57; Ответить: v1ex
Сообщение #2


Копайте в сторону GROP+ORDER BY в SQL
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
НЕПЛОХОЙ
НЕПЛОХОЙ
Topic Starter сообщение 11.7.2009, 19:56; Ответить: НЕПЛОХОЙ
Сообщение #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
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)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
НЕПЛОХОЙ
НЕПЛОХОЙ
Topic Starter сообщение 12.7.2009, 12:09; Ответить: НЕПЛОХОЙ
Сообщение #5


Спасибо, ZiTosS, чуть позже попытаюсь разобраться

Оффтоп:
как в теге [code][/code] делать отступы ровные? tab нельзя нажимать, пробелы ставить? :)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 12.7.2009, 12:36; Ответить: ZiTosS
Сообщение #6


Евгений,
Я сначала в блоконте набираю или прям в bb-тегах пробелами.

p.s. Код на практике не проверял, но вроде должен работать. Советую прежде чем его испытывать, Проверять каждое действие. Может моя логика немного не совпадает с практикой.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыСтатьи из веб-архив
Уник. от 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


 



RSS Текстовая версия Сейчас: 25.4.2024, 12:33
Дизайн