@strify_25

Как сделать сортировку по дате от текущей даты?

сайт на WP. в базе данных есть таблица calendar, в которой хранится дата, название и текст. Необходимо через запросы к бд вывести эти данные, отсортированные по дате, начиная от текущего дня. То есть, эти данные будут выводиться в слайдере, надо чтобы ближайшее к сегодняшнему дню событие показывалось в слайдере первым. Как сделать сортировку по возрастанию/убыванию знаю, а вот это не могу понять.
$results = $wpdb->get_results("SELECT * FROM wp_calendar");

						foreach ($results as $result) {
							$monthes = array(
							    1 => 'Января', 2 => 'Февраля', 3 => 'Марта', 4 => 'Апреля',
							    5 => 'Мая', 6 => 'Июня', 7 => 'Июля', 8 => 'Августа',
							    9 => 'Сентября', 10 => 'Октября', 11 => 'Ноября', 12 => 'Декабря'
							);

							$date_exp = explode('-', $result->event_begin);
							$date_unix = mktime(0,0,0,$date_exp[1],$date_exp[2],$date_exp[0]);
							$date = date('j', $date_unix)." ".$monthes[(date('n'))];
							echo '<li>'.$date.'
								<div class="item">
									<h3><a href="#">'.$result->event_title.'</a></h3>';
									if ($result->event_desc == ""){
										echo '<div class="anons">&nbsp;</div>';
									} else{
										echo '<div class="anons">'.$result->event_desc.'</div>';
									};

							echo '</div>
							</li>';
						}

скрипт работает, все выводится, но как отсортировать?
  • Вопрос задан
  • 616 просмотров
Решения вопроса 1
kimono
@kimono
Web developer
Как сделать сортировку по возрастанию/убыванию знаю

Видимо, нет!
$results = $wpdb->get_results("
        SELECT *, DAYOFMONTH(`event_date`) `event_day`, MONTH(`event_date`) `event_month`
        FROM `wp_calendar`
        WHERE DATE(`event_date`) >= CURDATE()
        ORDER BY `event_date` ASC
    ");

    $monthes = [
        1 => 'Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня',
        'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря',
    ];

    foreach ($results as $result) {
        echo '<li>'.$result->event_day.' '.$monthes[$result->event_month].'
                <div class="item">
                  <h3><a href="#">'.$result->event_title.'</a></h3>
                  <div class="anons">'.($result->event_desc ?: '&nbsp;').'</div>
                  </div>
              </li>';
    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы