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 :: Работа с датой

 PHP.SU

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


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

> Без описания
nepster
Отправлено: 05 Января, 2013 - 21:28:43
Post Id



Частый гость


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


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




Получается есть таблица регистраций в базе данных и содержит столбик date (дата регистрации)

Формат: 0000-00-00 00:00:00 (Попрошу сразу по поводу формата не холиварить, но я один из тех, кто поддерживает не юникс формат, а человекопонятный формат даты)

Так вот к примеру есть 20 записей, по скольку нас интересует только время, то пусть будет 20 вот таких записей:

2012-01-01 12:00:00
2012-01-01 12:00:00
2012-01-01 12:00:00
2012-02-01 12:00:00
2012-03-01 12:00:00
2012-04-01 12:00:00
2012-04-01 12:00:00
2012-04-01 12:00:00
2012-05-01 12:00:00
2012-06-01 12:00:00
2012-06-01 12:00:00
2012-07-01 12:00:00
2012-08-01 12:00:00
2012-09-01 12:00:00
2013-01-01 12:00:00
2012-09-01 12:00:00
2012-09-01 12:00:00
2012-10-01 12:00:00
2012-11-01 12:00:00
2012-12-01 12:00:00

Нужно исходя из даты получить все записи. Тоесть:

Регистраций за январь 2012: кол-во
Регистраций за февраль 2012: кол-во
Регистраций за март 2012: кол-во
Регистраций за апрель 2012: кол-во
Регистраций за май 2012: кол-во
Регистраций за июнь 2012: кол-во
Регистраций за июль 2012: кол-во
Регистраций за август 2012: кол-во
Регистраций за январь 2013: кол-во
..........


Подскажите пожалуйста идеи по вот такой вот реализации
 
 Top
Саныч Модератор
Отправлено: 05 Января, 2013 - 21:31:04
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


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




Я надеюсь тип столбца date DATETIME? Или (VAR)?CHAR ?
(Добавление)
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT COUNT(0) AS number, MONTH(`date`) AS month, YEAR(`date`) AS year FROM `datetime` GROUP BY DATE_FORMAT(`date`, "%m-%Y")
Проверено.


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
broshurkaplus
Отправлено: 05 Января, 2013 - 21:42:52
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




не до конца понимаю, но может быть в запросе



сгруппировать, count() по дате и будем иметь количество регистраций на определенную дату
 
 Top
nepster
Отправлено: 05 Января, 2013 - 21:45:26
Post Id



Частый гость


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


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




Саныч


DATETIME - формат даты

Ух ты получил

CODE (htmlphp):
скопировать код в буфер обмена
  1. +--------+-------+------+
  2. | number | month | year |
  3. +--------+-------+------+
  4. |      1 |     0 |    0 |
  5. |     49 |     1 | 2013 |
  6. |      8 |     9 | 2012 |
  7. |    128 |    10 | 2012 |
  8. |   4715 |    11 | 2012 |
  9. |   2370 |    12 | 2012 |
  10. +--------+-------+------+



а как лучше, создать таблицу где хранить записи о том, сколько к примеру в января было зарегистрировано или каждый раз в онлайн времени запросом показывать ?

И еще 1 момент, можно ли получить как то данные не кол-во, многомерный массив из записей ?

Или лучше вывести к примеру такую табличку:
Регистраций в январе 10
Регистраций в феврале 20
....
И при нажатии на число кидать на страницу, где все записи за январь к примеру ?

(Отредактировано автором: 05 Января, 2013 - 21:46:25)

 
 Top
broshurkaplus
Отправлено: 05 Января, 2013 - 21:53:51
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




не очень понятно зачем? если эти данные всегда дёргаются, то лучше таблицу, чтоб по закрытии месяца заполнялась, а не подсчитывать каждый раз все данные за 5лет...

"кидать на страницу"- если это нужно глобально, если для себя, так получить/вывести на экран таебличку

Регистраций в январе 10
Регистраций в феврале 20

10 и 20 сделать ссылками или напр. в span с ид и через функцию яваскрипта динамически отсылать на обработчик и возвращать подробный список в страницу.

если для себя тем более лучше один раз обработчик написать, чем сотню страниц плодить

яваскрипта в связке с квери

(Отредактировано автором: 05 Января, 2013 - 21:55:19)

 
 Top
Саныч Модератор
Отправлено: 05 Января, 2013 - 22:01:32
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


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




Сделайте еще таблицу, ну скажем regstat с полями date и number. По крону 1 числа каждого месяца запускайте подсчет и пишите в таблицу... Ну, а при выборе вытаскиваете тупо все записи из таблицы...


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
nepster
Отправлено: 05 Января, 2013 - 23:35:18
Post Id



Частый гость


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


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




Понял, большое спасибо .
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB