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 :: выборка по дате из таблицы в MySQL

 PHP.SU

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


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

> Описание: php and MySQL
Скаляр
Отправлено: 11 Февраля, 2010 - 10:53:31
Post Id


Новичок


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


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




Привет всем! Хочу сделать выборку по сегодняшней дате из таблицы таким образом:

CODE (SQL):
скопировать код в буфер обмена
  1. $query = " SELECT * FROM `stat` WHERE ".strftime('%d%m%Y','last_request')." = ".strftime('%d%m%Y','time()')." ";


При запросе выдает ошибку: Warning: strftime() expects parameter 2 to be long, string given in /home2/of12/sites/www/ferro/inde x.php on line 159
Я так понимаю что ругается именно на поле last_request которое представлено неправильным образом. Пробовал убирать кавычки, менять их на другие, но результата
никакого. Как правильно передать запрос чтобы сделать выборку? Можно ли как-то по-другому сделать выборку по сегодняшней дате из таблицы?
Хочется чтобы запрос выдавал из таблицы именно те записи, которые соответствуют текущей сегодняшней дате. Надеюсь правильно разъяснил суть вопроса.
Заранее благодарен за помощь.
 
 Top
Viper
Отправлено: 11 Февраля, 2010 - 11:16:39
Post Id



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


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




1. а с какого перепугу вы название поля переводите в строку да и ещё timestamp?!!!
2. не используйте прямо в запросе функции. сами потом запутаетесь.
3. лучше и правильнее использовать функции mysql.

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT field1, field2 FROM db_name WHERE field_time = DATE_FORMAT(CURDATE(), '%d%m%Y');


как-то так.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
RomAndry Администратор
Отправлено: 11 Февраля, 2010 - 11:20:50
Post Id



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


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


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




Вы в PHP функцию засунули функцию и поле MySQL что не есть корректно.
Можно сделать вложенными запросами, а лучше как указал Viper
 
My status
 Top
Скаляр
Отправлено: 11 Февраля, 2010 - 12:24:56
Post Id


Новичок


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


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




Спасибо тебе, Viper, что наставил меня на путь истинный! В результате заработала следующая конструкция:

CODE (SQL):
скопировать код в буфер обмена
  1. $sql = " SELECT * FROM `stat` WHERE DATE_FORMAT(FROM_UNIXTIME(last_request), '%d%m%Y') = DATE_FORMAT(CURDATE(), '%d%m%Y') ";


Еще раз спасибо!
 
 Top
Ch_chov
Отправлено: 11 Февраля, 2010 - 13:05:40
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


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




А DATE_FORMAT тут зачем?
 
 Top
Viper
Отправлено: 11 Февраля, 2010 - 14:15:16
Post Id



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


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




Ch_chov пишет:
А DATE_FORMAT тут зачем?

DATE_FORMAT я предложил исходя из того что незнаю в каком формате приезжает стамп времени. а так мы по умолчанию приводим к стандарту mysql.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
JustUserR
Отправлено: 11 Февраля, 2010 - 14:25:32
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Скаляр Все дело было в том что имена полей таблица в sql в запросах обрамляются в обратные кавычки ` а не одиночные кавычки значение к которых является строкой В вашем случаем решением было убрать кавчки так как имя поля sql содержало только латинские буквы/цифры/знак подчеркивания - а более общим решением является замена одиночных кавычек на обратные


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Скаляр
Отправлено: 11 Февраля, 2010 - 15:34:53
Post Id


Новичок


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


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




JustUserR пишет:
JustUserR
JustUserR пишет:
Скаляр Все дело было в том что имена полей таблица в sql в запросах обрамляются в обратные кавычки ` а не одиночные кавычки значение к которых является строкой В вашем случаем решением было убрать кавчки так как имя поля sql содержало только латинские буквы/цифры/знак подчеркивания - а более общим решением является замена одиночных кавычек на обратные


JustUserR я пробовал заменять на обратные ` но в моем случае почему-то выдавало ошибку "shell_exec disabled for security reasons", но все равно спасибо, теперь буду знать!
 
 Top
JustUserR
Отправлено: 11 Февраля, 2010 - 17:13:56
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Скаляр пишет:
JustUserR я пробовал заменять на обратные ` но в моем случае почему-то выдавало ошибку "shell_exec disabled for security reasons", но все равно спасибо, теперь буду знать!
Пожалуйста! Ваша ошибка выдавалсь из-за того что в PHP в наследие от Perl есть втсроенная в язык операция обратные кавычки предназначенная для вывоза систеных команд и перехвата их вывода - в вашем случае PHP воспринимал их как такую функцию - надо было дополнительно обрамить или прокранировать их


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB