- сортиране по оставащо време
WT форуми -> PHP MySQL ASP.NET -> сортиране по оставащо време
Създайте нова тема Напишете отговор 
Автор Съобщение
obqvi_in
Нов
Нов

Регистриран на: 18/04/2012 7:24 pm

Support: 0
Bonus: 0
Мнения: 138
Мнение 31/07/2017 12:22 pm     сортиране по оставащо време Отговорете с цитат


Здравейте, в база данни имам дадени събития, които са в минало и предстоящи в бъдеще. Как да сортирам събитията в 'select' които предстоят най-скоро и от миналото(колко години) и от бъдещето. Например днес сме 31.07.2017 събитие 1 на 31.08.2017; 2 на 30.09.2016; 3 на 31.10.2017;
Съответно да бъдат подредени така съб. 1(остава 1 месец), съб. 2(остават 2 мес. и е изминала 1 год.) и съб. 3(остават 3 мес.)
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 340
Bonus: 678
Мнения: 2556
Мнение 31/07/2017 12:36 pm      Отговорете с цитат


Как записваш датите?



<?php

//Ако датите са ти в такъв формат
$dates = ['31.07.2017', '31.08.2017', '30.09.2016', '31.10.2017'];

//ги обръщаме на date обекти
$dateObjects = array_map(function($date) {
  return DateTime::createFromFormat('d.m.Y', $date);
}, $dates);

//сортираме
usort($dateObjects, function($a, $b) {
    return $a->getTimestamp() - $b->getTimestamp();
});

foreach($dateObjects as $date) {
  echo $date->format('d.m.Y').PHP_EOL;
}



Ето демо - https://3v4l.org/ELJG4
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
obqvi_in
Нов
Нов

Регистриран на: 18/04/2012 7:24 pm

Support: 0
Bonus: 0
Мнения: 138
Мнение 31/07/2017 4:59 pm      Отговорете с цитат


Формат в база данни е 'Y-m-d' Благодаря ти, че си направил демо, но не разбирам как ще стане в моя 'select'. Не знам дали си ме разбрал, защото и аз не го обясних както трябва, че не се взема под внимание годината ако събитията са в минало време. Тоест събитие с дата 01.08.1990(рожден ден) трябва да бъде най-скоро подредено. Сещам се за едно нещо, но не знам дали е правилно. Всички събития в минало датите им да се преобразуват на сегашната година и с функцията strtotime(date('Y-m-d')) да се подредят до края на годината, но пък в края и началото на другата годината може да се объркат нещата. А и не знам как да вкарам променлива в 'select', за да са в цикъл и двете и дали е правилно.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
joTunkiq
Активен
Активен

Регистриран на: 25/12/2012 12:03 pm

Support: 122
Bonus: 244
Мнения: 756
Мнение 31/07/2017 9:14 pm      Отговорете с цитат


Най-лесно да ти дам кода, и сега оправяй се.
PHP code:
<?php 
$sql = mysqli_qery($db_link, 'Select * from `tablica` order by `KOLONA_S_DATATA` ASC ');
?>

<select>
<?php while($row = $sql->fetch_assoc()): ?>
<option><?php echo $row['KOLONA_S_DATATA'];?></option>
<?php endwhile; ?>
</select>


Кажи това ми е таблицата има тези, тези и тези полета, тука записвам датата в ейтакъв формат, как да сортирам резултатите. И да дадеш имената на таблиците - толкова ли е трудно?

Сега 3-4 поста гадаем какво имаш и какво да ти покажем като пример Smile Idea
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
uphero
Потребител
Потребител

Регистриран на: 20/02/2012 2:26 pm

Support: 31
Bonus: 62
Мнения: 690
Мнение 01/08/2017 12:58 pm      Отговорете с цитат


joTunkiq написа:
Най-лесно да ти дам кода, и сега оправяй се.
PHP code:
<?php 
$sql = mysqli_qery($db_link, 'Select * from `tablica` order by `KOLONA_S_DATATA` ASC ');
?>

<select>
<?php while($row = $sql->fetch_assoc()): ?>
<option><?php echo $row['KOLONA_S_DATATA'];?></option>
<?php endwhile; ?>
</select>


Кажи това ми е таблицата има тези, тези и тези полета, тука записвам датата в ейтакъв формат, как да сортирам резултатите. И да дадеш имената на таблиците - толкова ли е трудно?

Сега 3-4 поста гадаем какво имаш и какво да ти покажем като пример Smile Idea

той ако знаеше как да си зададе въпроса щеше да търси в стака.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 340
Bonus: 678
Мнения: 2556
Мнение 02/08/2017 12:36 pm      Отговорете с цитат


uphero написа:
той ако знаеше как да си зададе въпроса щеше да търси в стака.


Най-полезния потребител на web-tourist.net, дами и господа!

Ивайло Костов RULES!
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
obqvi_in
Нов
Нов

Регистриран на: 18/04/2012 7:24 pm

Support: 0
Bonus: 0
Мнения: 138
Мнение 02/08/2017 5:19 pm      Отговорете с цитат


https://stackoverflow.com/questions/7343807/mysql-query-to-sort-upcoming-birthdays-based-on-current-date?rq=1
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
lam3r4370
Активен
Активен

Регистриран на: 20/08/2008 6:12 pm

Support: 131
Bonus: 244
Мнения: 3409
Мнение 02/08/2017 5:21 pm      Отговорете с цитат


Fakeheal написа:
uphero написа:
той ако знаеше как да си зададе въпроса щеше да търси в стака.


Най-полезния потребител на web-tourist.net, дами и господа!

Ивайло Костов RULES!


Най-полезния от година и повече ми праща 15лв Very Happy Още ги чакам Very Happy
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 340
Bonus: 678
Мнения: 2556
Мнение 02/08/2017 9:12 pm      Отговорете с цитат


obqvi_in написа:
https://stackoverflow.com/questions/7343807/mysql-query-to-sort-upcoming-birthdays-based-on-current-date?rq=1


Хей, да разбираме ли, че си се справил със задачката? Smile


lam3r4370 написа:
Fakeheal написа:
uphero написа:
той ако знаеше как да си зададе въпроса щеше да търси в стака.


Най-полезния потребител на web-tourist.net, дами и господа!

Ивайло Костов RULES!


Най-полезния от година и повече ми праща 15лв Very Happy Още ги чакам Very Happy


Смятай...

Не ми се мисли за хората от http://dostavetemi.com/
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
lam3r4370
Активен
Активен

Регистриран на: 20/08/2008 6:12 pm

Support: 131
Bonus: 244
Мнения: 3409
Мнение 02/08/2017 10:37 pm      Отговорете с цитат


Fakeheal написа:



lam3r4370 написа:
Fakeheal написа:
uphero написа:
той ако знаеше как да си зададе въпроса щеше да търси в стака.


Най-полезния потребител на web-tourist.net, дами и господа!

Ивайло Костов RULES!


Най-полезния от година и повече ми праща 15лв Very Happy Още ги чакам Very Happy


Смятай...

Не ми се мисли за хората от http://dostavetemi.com/


По-забавното е, че той сам предложи да ми ги даде Very Happy

извинявам се за спама
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP MySQL ASP.NET Часовете са според зоната GMT + 2 Часа
Страница 1 от 1


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети