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

Регистриран на: 13/05/2016 2:29 pm

Support: 5
Bonus: 10
Мнения: 307
Мнение 10/09/2018 3:06 pm     Изваждане на резултати за дата от вписано поле в базата данн Отговорете с цитат


Здравейте, имам нужда от малко помощ за една задачка която се мъча да направя.

Имам в базата данни поръчки и всяка поръчка си има ръчно зададена дата за пращане.

Примерно: Пица 1 > 19.09.2018

Полето се казва: deliverytime


Опитвам се да изкарам една информация забавени Пици за последните 30 дена.

Сега изкаравам така но това изкарва за точна дата и то ще е само един резултат или два за тази дата която те самите съдържат.

FROM `pr_pizza` o WHERE o.order_status_id > '0' AND DATE(o.deliverytime) = DATE('" . date("Y-m-d", strtotime("-2 day")) . "') ORDER BY o.pizza_id DESC LIMIT 0,20"

И така скъпи приятели иска ми се да измисля нещо но не се получава, дали с DATE_SUB и INTERVAL нещо не ми се получава на мен специално. Smile

Благодаря предварително!
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 158
Bonus: 315
Мнения: 1470
Мнение 10/09/2018 3:20 pm      Отговорете с цитат


Това сравнение:

SQL code:
DATE(o.deliverytime) = DATE('" . date("Y-m-d", strtotime("-2 day")) . "') 


проверява за еднакви дати. Вероятно ти трябва "<=", т.е. дати, които са преди 2 дни или по-рано.

Тук човекът прави същото, но с 10 дни. Виж дали няма да ти свърши работа. И забележи, че ползва оператора "<", докато на теб вероятно ти трябва "<=".
https://stackoverflow.com/questions/36545152/mysql-select-all-the-entries-older-than-10-days/36545295
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
novakabg
Турист
Турист

Регистриран на: 13/05/2016 2:29 pm

Support: 5
Bonus: 10
Мнения: 307
Мнение 10/09/2018 4:01 pm      Отговорете с цитат


Нещо не се получава прочем, изкарва и други резултати Crying or Very sad

   $sql = "SELECT o.pizza_id , CONCAT(o.firstname) AS customer, o.shipping_code, o.total, o.currency_code, o.status, o.currency_value, o.date_added, o.telephone, o.deliverytime
      FROM `pr_pizza` o WHERE o.status > '0' AND DATE(o.deliverytime) = DATE('" . date("Y-m-d", strtotime("-2 day")) . "') ORDER BY o.pizza_id  DESC LIMIT 0,20";
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 158
Bonus: 315
Мнения: 1470
Мнение 10/09/2018 5:21 pm      Отговорете с цитат


Направи сметките с датата в заявката. Т.е. не с php, a с SQL.

И като за начало селектирай само полето с датата + някакво id, без други полета, без други условия в where освен сравнението на датите и без php.
Така ще имаш много по-проста заявка за работа, и по-лесно ще видиш къде бъркаш.

И като премахнеш php-частта от заявката, ще можеш да я тестваш отделно, например в phpmyadmin. И дай скрийншот на заявката с резултата от нея в phpmyadmin, защото изглежда странно при правилно условие да получаваш грешни резултати.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
novakabg
Турист
Турист

Регистриран на: 13/05/2016 2:29 pm

Support: 5
Bonus: 10
Мнения: 307
Мнение 10/09/2018 8:25 pm      Отговорете с цитат


Просто не мърда Laughing

Ето така пробвах, но резултата е същият.

SELECT * FROM pr_pizza  WHERE DATE(deliverytime) = DATE_SUB(CURDATE(), INTERVAL 7 DAY) ORDER BY o.order_id DESC LIMIT 0,20
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 158
Bonus: 315
Мнения: 1470
Мнение 11/09/2018 9:21 am      Отговорете с цитат


https://www.w3schools.com/sql/trymysql.asp?filename=trysql_func_mysql_date4

Изпълни тази заявка:

SQL code:
SELECT * FROM Orders
WHERE DATE(OrderDate) <= DATE_SUB(CURDATE(), INTERVAL 10 YEAR)
ORDER BY OrderDate DESC


За да се увериш, че работи. След това дай в http://sqlfiddle.com/ примерна таблица с 4-5 реда от твоята БД със заявката, която изпълняваш, и сподели линк, за да видим защо не става.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
novakabg
Турист
Турист

Регистриран на: 13/05/2016 2:29 pm

Support: 5
Bonus: 10
Мнения: 307
Мнение 12/09/2018 3:11 pm      Отговорете с цитат


Много благодаря на @anonimen за отговорите много мило, извинявам се отново че не съм дал код и структура със записи!

Но благодаря и на @joTunkiq, той оправи проблема след като видя кода и структурата.

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


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