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

Регистриран на: 18/09/2010 8:12 am

Support: 19
Bonus: 37
Мнения: 742
Мнение 08/05/2018 10:26 am     Заявка с BETWEEN Отговорете с цитат


Здравейте колеги,
имам малък проблем с заявките от дата до дата
ако филтрирам до 01.05.2018 до 08.05.2018 - всичко работи, но ако иска да филтрирам от 15.04.2018 до 03.05.2018 ... няма резултати или не са коректни ...
Датите записание в базата данни са в формат "01.01.2018"
Ето и заявката която използвам:

SQL code:
... a.request_added BETWEEN "'.$_GET['startdate'].'" AND "'.$_GET['enddate'].'"

или по нагледно
SQL code:
a.request_added BETWEEN "15.04.2018" AND "03.05.2018"
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
Fakeheal
Support
Support

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

Support: 350
Bonus: 698
Мнения: 2644
Мнение 08/05/2018 10:37 am      Отговорете с цитат


Сигурно не смята правилно заради формата на датите и не ги разбира като дати:

DATE_FORMAT(STR_TO_DATE('15.04.2018', '%d.%m.%Y'), '%Y-%m-%d');


Така може да ги преубразуваш във формата, с който DATE работи по default.

Пример:

a.request_added
BETWEEN
    DATE_FORMAT(STR_TO_DATE('15.04.2018', '%d.%m.%Y'), '%Y-%m-%d')
AND
    DATE_FORMAT(STR_TO_DATE('03.05.2018', '%d.%m.%Y'), '%Y-%m-%d')


Но може би ще е по-лесно да смениш формата на датите, които записваш да са Year-Month-Date.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Msecurity
Потребител
Потребител

Регистриран на: 18/09/2010 8:12 am

Support: 19
Bonus: 37
Мнения: 742
Мнение 08/05/2018 10:46 am      Отговорете с цитат


Дам, но дори и да ги преобразувам колоната "request_added" си остава в предният форма, не трябва ли и тя да се преобразува по време на заявката?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
Fakeheal
Support
Support

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

Support: 350
Bonus: 698
Мнения: 2644
Мнение 08/05/2018 10:49 am      Отговорете с цитат


Msecurity написа:
Дам, но дори и да ги преобразувам колоната "request_added" си остава в предният форма, не трябва ли и тя да се преобразува по време на заявката?


Ох, да и нея. А сега забелязах, че двете дати в BETWEEN идват от GET там може дирекнтно да си смениш URL-а и да ги подаваш като 2018-04-15 Smile

Така ще стане само:

DATE_FORMAT(STR_TO_DATE(a.request_added, '%d.%m.%Y'), '%Y-%m-%d') 
BETWEEN
     "'.$_GET['startdate'].'"
 AND
    "'.$_GET['enddate'].'"


Само да отбележа, че по никакъв начин не escape-ваш $_GET подадена информация, което може да доведе от SQL injection и супер много проблеми.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Msecurity
Потребител
Потребител

Регистриран на: 18/09/2010 8:12 am

Support: 19
Bonus: 37
Мнения: 742
Мнение 08/05/2018 10:53 am      Отговорете с цитат


за това няма проблем, системата е защитена чрез друга система за сигурност , която следи всичко и филтрира GET и POST, но това вече е друга тема Very Happy
пп: сега ще пробвам както в примера който даде и ще пиша какво е станало Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
Fakeheal
Support
Support

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

Support: 350
Bonus: 698
Мнения: 2644
Мнение 08/05/2018 10:54 am      Отговорете с цитат


Msecurity написа:
за това няма проблем, системата е защитена чрез друга система за сигурност , която следи всичко и филтрира GET и POST, но това вече е друга тема Very Happy
пп: сега ще пробвам както в примера който даде и ще пиша какво е станало Smile


Система, която следи гет и пост и филтрира/променя директно глобалните масиви ($_GET и $_POST) е лошо дизайната система. Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Msecurity
Потребител
Потребител

Регистриран на: 18/09/2010 8:12 am

Support: 19
Bonus: 37
Мнения: 742
Мнение 08/05/2018 10:57 am      Отговорете с цитат


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


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