Перейти к содержимому
Русский язык для Invision Community 5

Помогите с условием

Здравствуйте. Не могу сообразить.

 

У меня есть year и month в разных полях, вот это рабочий код для month, мне нужно добавить еще для года так же.

 

Если выбран только месяц, отображать текущий год и выбранный месяц.

Если выбран только год, отображать текущий месяц и выбранный год.

Если выбран и месяц и год, отображать и месяц и год.

 

Такие же условия должны быть?

 

        if ( isset( \IPS\Request::i()->month ) and isset( $months[ \IPS\Request::i()->month ] ) )
       {
           $sqlCurrentDate = " AND year='" . $yearNow . "' AND month='" . $months[ \IPS\Request::i()->month ] . "' ";
       }
       else if ( isset( $year ) AND isset( $month ) )
       {
           \IPS\Request::i()->month = $monthNow;
           \IPS\Request::i()->year = $yearNow;
           $sqlCurrentDate = " AND year='" . $yearNow . "' AND month='" . $monthNow . "' ";
       }

Рекомендованные сообщения

  • Автор

Как правильно сделать 3 условие?

 

        // Если выбран только месяц.
       if ( isset( \IPS\Request::i()->month ) and isset( $months[ \IPS\Request::i()->month ] ) )
       {
       	\IPS\Request::i()->year = $yearNow;
           $sqlCurrentDate = " AND year='" . $yearNow . "' AND month='" . $months[ \IPS\Request::i()->month ] . "' ";
       }
       // Если выбран только год.
       else if ( isset( \IPS\Request::i()->year ) and isset( $years[ \IPS\Request::i()->year ] ) )
       {
       	\IPS\Request::i()->month = $monthNow;
           $sqlCurrentDate = " AND month='" . $monthNow . "' AND year='" . $years[ \IPS\Request::i()->year ] . "' ";
       }
       // Если выбран и месяц и год.
       else if (  )
       {

       }
       // Если ничего не выбрано, текущие год и месяц.
       else if ( isset( $year ) AND isset( $month ) )
       {
           \IPS\Request::i()->month = $monthNow;
           \IPS\Request::i()->year = $yearNow;
           $sqlCurrentDate = " AND year='" . $yearNow . "' AND month='" . $monthNow . "' ";
       }

Если у Вас в WHERE есть и год и месяц, то смысл городить огород с if/else

 

\IPS\Request::i()->month = isset($months[\IPS\Request::i()->month]) ? $months[\IPS\Request::i()->month] : $monthNow;
\IPS\Request::i()->year = isset($years[\IPS\Request::i()->year]) ? $years[\IPS\Request::i()->year] : $yearNow;

 

$sqlCurrentDate = здесь уже используете \IPS\Request::i()->month и \IPS\Request::i()->year

  • Автор

Спасибо, всё супер.

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.