Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: из массива даты выбрать меньшую

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Грачи прилетели
Отправлено: 25 Февраля, 2019 - 10:47:53
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Добрый день!

Прошу помощи

В результате запроса
PHP:
скопировать код в буфер обмена
  1.  
  2. if ($result = $mysqli->query("SELECT * FROM `pr` WHERE `day` BETWEEN '".$date_n."' AND '".$date_k."' AND `v` = 0 ORDER BY `day` DESC LIMIT 0,3")) {
  3. while( $Arr = $result->fetch_assoc() ){
  4.        
  5. $day_mh = $Arr['day'];
  6. $id = $Arr['id'];
  7.  
  8.         }
  9. }
  10.  
  11.  


получаю массив дат.
Мне надо выбрать из этого массива наименьшую дату. В принципе можно добавить и ID к выборке (уникальный)

Как получить эту дату из массива?
 
 Top
Vladimir Kheifets
Отправлено: 25 Февраля, 2019 - 11:20:40
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




Грачи прилетели пишет:
получаю массив дат.
Мне надо выбрать из этого массива наименьшую дату....
Как получить эту дату из массива?

Добрый день!
Попробуйте так:
Спойлер (Отобразить)
Удачи!

(Отредактировано автором: 25 Февраля, 2019 - 11:21:47)

 
 Top
Грачи прилетели
Отправлено: 25 Февраля, 2019 - 11:22:46
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




У меня вот так получилось

PHP:
скопировать код в буфер обмена
  1.  
  2. if ($result = $mysqli->query("SELECT * FROM `pr` WHERE `day` BETWEEN '".$date_n_m."' AND '".$date_k_m."' AND `v` = 0 ORDER BY `day` DESC LIMIT 0,3")) {
  3. while( $Arr = $result->fetch_assoc() ){
  4.        
  5. $dt2 = array(strtotime($Arr['day']));
  6.  
  7. }
  8. }
  9. $ddd = min($dt2);  
  10.  
  11. echo date('Y.m.d', $ddd);
  12.  


вроде кажет верное значение. но это правильно ли с т.з. правильного кода?

(Отредактировано автором: 25 Февраля, 2019 - 11:23:09)

 
 Top
Vladimir Kheifets
Отправлено: 25 Февраля, 2019 - 12:33:11
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




Грачи прилетели пишет:
У меня вот так получилось

PHP:
скопировать код в буфер обмена
  1.  
  2. if ($result = $mysqli->query("SELECT * FROM `pr` WHERE `day` BETWEEN '".$date_n_m."' AND '".$date_k_m."' AND `v` = 0 ORDER BY `day` DESC LIMIT 0,3")) {
  3. while( $Arr = $result->fetch_assoc() ){
  4.        
  5. $dt2 = array(strtotime($Arr['day']));
  6.  
  7. }
  8. }
  9. $ddd = min($dt2);  
  10.  
  11. echo date('Y.m.d', $ddd);
  12.  


вроде кажет верное значение. но это правильно ли с т.з. правильного кода?


у Вас в $dt2 только одна последняя из выбранных дат, которая случайно оказалась минимальной.
с т.з. правильного кода д.б.
PHP:
скопировать код в буфер обмена
  1. ...............
  2. $dt2 = array();
  3. while( $Arr = $result->fetch_assoc() )
  4. {      
  5.         $dt2[] = strtotime($Arr['day']);
  6. }
  7. ...............

P.S. если нужна только минимальная дата, то можно получить её так
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT MIN(day) FROM `pr` WHERE `day` BETWEEN '".$date_n_m."' AND '".$date_k_m."' AND `v` = 0

(Отредактировано автором: 25 Февраля, 2019 - 12:58:09)

 
 Top
LIME
Отправлено: 26 Февраля, 2019 - 12:51:25
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




то ли лыжи не едут то ли я не понял
Vladimir Kheifets пишет:
которая случайно оказалась минимальной.
Vladimir Kheifets пишет:
ORDER BY `day` DESC
разве не всегда последняя будет минимальной?
(Добавление)
Грачи прилетели пишет:
Мне надо выбрать из этого массива наименьшую дату.
 
 Top
Vladimir Kheifets
Отправлено: 27 Февраля, 2019 - 10:03:41
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




LIME пишет:
то ли лыжи не едут то ли я не понял
Vladimir Kheifets пишет:
которая случайно оказалась минимальной.
Vladimir Kheifets пишет:
ORDER BY `day` DESC
разве не всегда последняя будет минимальной?
(Добавление)
Грачи прилетели пишет:
Мне надо выбрать из этого массива наименьшую дату.


Не понял или не дочитал.
Автор темы хотел записать в цикле в массив $dt2 все выбранные значения

с т.з. правильного кода это верно?

(Отредактировано автором: 27 Февраля, 2019 - 10:10:03)

 
 Top
LIME
Отправлено: 27 Февраля, 2019 - 10:27:50
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Vladimir Kheifets пишет:
Автор темы хотел записать в цикле в массив $dt2 все выбранные значения
вопрос зачем в этом массиве искать минимальную дату?
бери последнюю она и будет минимальная
(Добавление)
изобретаете чегото зачемто
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB