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
Форумы портала PHP.SU :: Версия для печати :: Запросы к базе MySQL при помощи php
Форумы портала PHP.SU » PHP » Программирование на PHP » Запросы к базе MySQL при помощи php

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

1. malaba - 28 Февраля, 2009 - 22:55:05 - перейти к сообщению
Здраствуйте...
Совсем недавно начал писать на php,воткнулся в одну проблему с запросами к базе данных.Может люди с большим опытом подскажут как решить такую проблему...а проблема вот в чём.
В мою базу данных с помощью скрипта заноситься дата и номер (дата в формате:год-месяц-день-час-минута-секунда)...
как сделать чтобы при записи в БД производилась проверка,считывалась с базы данных
количество записей от одного номера сделанные за текущие сутки...?
Заранее спасибо.
2. Dastar - 28 Февраля, 2009 - 23:11:52 - перейти к сообщению
ИМХО, лучше заносить для этой задачи в базу время в секундах (с начала unix-эры) (функция time()). А если требуется потом перевести это время в понятное человеку, использовать функцию date().

SELECT count(*) FROM `table` WHERE `time`+86400>'".time()."' AND `id`='".$userID."'

Это если Вы модифицируете таблицу как я Вам сказал.
3. malaba - 28 Февраля, 2009 - 23:51:14 - перейти к сообщению
Ясность хрустальная ;) спасибо...
Вот только заносяться в БД данные запросом который приходит с другого сервиса,и формат даты я поменять не могу...
4. CodeWarrior - 01 Марта, 2009 - 01:38:55 - перейти к сообщению
Если я правильно понял, то вам нужна выборка из базы за определенные сутки, например, за текущие? Какой формат у даты в базе?
5. valenok - 01 Марта, 2009 - 03:23:04 - перейти к сообщению
malaba INTERVAL WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY)
Dastar NOW(), UNIX_TIMESTAMP()
6. malaba - 01 Марта, 2009 - 14:14:08 - перейти к сообщению
Dastar спасибо появилась мыслишка где и что искать и вот что из этого получилось:
SELECT some FROM tbl_name WHERE
TO_DAYS(NOW()) - TO_DAYS(date_col) <=30;
Этот пример запроса должен выбирать все записи с величиной date_col за последние 30 дней..!
Сейчас буду пробовать ;))
7. malaba - 02 Марта, 2009 - 18:10:29 - перейти к сообщению
Ага,величина date_col непонятна что за величину сюда подставлять....
но истина уже где-то рядом
8. malaba - 02 Марта, 2009 - 23:33:20 - перейти к сообщению
Всем спасибо,всё решено...
Действительно такой запрос выбирает из БД все записи за последние сутки...
вот решение:
....WHERE TO_DAYS(NOW())-TO_DAYS(DATE)<=1;

 

Powered by ExBB FM 1.0 RC1