Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 37

Как подсчитать сколько юзеров зарегалось за последние 24 часа?

05.04.2015, 18:44. Показов 2006. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Поможете реализовать подсчет?
Есть таблица
USERS
uid | pass | ref | date
в поле date записывается время в формате time();
как подсчитать сколько юзеров зарегалось за последние 24 часа?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.04.2015, 18:44
Ответы с готовыми решениями:

Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12, …, 24 часа
Составить программу по условию

Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12,15,18,21, 24 часа
Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12,15,18,21, 24 часа. Решение...

Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12, . 24 часа
Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12, .... 24 часа.

13
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
05.04.2015, 19:04
PHP
1
2
3
4
5
6
7
8
9
10
11
# Текущая метка времени.
$time_right = time();
 
# -24 ч. назад от текущей.
$time_left = $time_right-24*60*60;
 
# Запрос.
$command = "SELECT COUNT(uid)
              FROM USERS
             WHERE date>$time_left
               AND date<$time_right;";
Если запрос вернет нулевое значение, это будет означать что за 24 часа нет регистраций. Но правильный запрос всегда будет содержать строку результата.

Не по теме:

http://php.net/manual/ru/function.strtotime.php

В поле date вашей таблицы данные метки времени следует хранить в соответствиии с типом данных DATE TIME. Тогда дата будет хранится в виде где то таком виде 05-04-2015 18:05:00

DATETIME
Комбинация даты и времени. Поддерживается интервал от '1000-01-01 00:00:00' до '9999-12-31 23:59:59'. MySQL выводит значения DATETIME в формате 'YYYY-MM-DD HH:MM:SS', но можно устанавливать значения в столбце DATETIME, используя как строки, так и числа. See section 6.2.2.2 Типы данных DATETIME, DATE и TIMESTAMP.

1
 Аватар для Seovin
79 / 79 / 36
Регистрация: 28.02.2014
Сообщений: 400
05.04.2015, 19:07
PHP
1
2
3
4
5
6
7
<? 
$vrem = time() - 8640;
$res = mysql_query("select count(*) from USERS where date > '."$vrem".'");
$row = mysql_fetch_row($res);
$tota = $row[0];
echo $tota;
?>
Добавлено через 1 минуту

Не по теме:





ой опоздал:)

1
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
05.04.2015, 19:10

Не по теме:

Цитата Сообщение от Seovin
PHP
1
date > '."$vrem"
Интерестное решение.



Добавлено через 2 минуты

Не по теме:

Цитата Сообщение от Seovin
ой опоздал
Ниче. тс должен всем поставить +1. :)

1
05.04.2015, 19:12

Не по теме:

Цитата Сообщение от tolimadokara Посмотреть сообщение
Интерестное решение.
главное что рабочее

0
05.04.2015, 19:17

Не по теме:

Seovin, а что это за 8640?

PHP
1
$vrem = time() - 8640;
?

8640 это -(минус) чуть более 2 часов назад.

Тогда надо так

PHP
1
$vrem = time() - 86400;
Потому что 24*60*60 = 86400.

Все понял. Вы забыли ноль в конце числа установить.

0
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 37
05.04.2015, 19:23  [ТС]
tolimadokara, поставил, ничего не отображается, подумал может надо echo $command - отобразился только сам текст запроса.
Seovin, спасибо за старание, установил скрипт на страницу - и страница не грузит, еррорит, щас включу отладчик вышлю ошибку.

Ошибка Parse error: syntax error, unexpected T_VARIABLE in /t.php on line 44
тоесть здесь:
PHP
1
$res = mysql_query("select count(*) from USERS where date > '."$vrem".'");
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
05.04.2015, 19:35
Лучший ответ Сообщение было отмечено drow007 как решение

Решение

Цитата Сообщение от drow007
tolimadokara, поставил, ничего не отображается, подумал может надо echo $command - отобразился только сам текст запроса.
Да. Надо echo.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Текущая метка времени.
$time_right = time();
 
# -24 ч. назад от текущей.
$time_left = $time_right-24*60*60;
 
# Запрос.
$command = "SELECT COUNT(uid)
              FROM USERS
             WHERE date>$time_left
               AND date<$time_right;";
 
$result = mysql_query($command);
               
$users = mysql_fetch_array($result, MYSQL_NUM);
 
echo 'Количество зарегистрированных пользоватлей <strong>'.$users[0].'</strong> за прошедшие 24 часа.';
Цитата Сообщение от drow007
Seovin, спасибо за старание, установил скрипт на страницу - и страница не грузит, еррорит, щас включу отладчик вышлю ошибку.
Подозреваю что из-за ошибки в стр. №3 сообщения №3
$res = mysql_query("select count(*) from USERS where date > '."$vrem".'");
вот так правильно
PHP
1
$res = mysql_query("select count(*) from USERS where date > '".$vrem."'");
1
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 37
05.04.2015, 19:39  [ТС]
tolimadokara, поставил Ваш - не отображается ничего, кроме текста Количество зарегистрированных пользоватлей за прошедшие 24 часа. Даже 0 нету.

Да, то, что вы подправили другого пользователя скрипт - заработал без ошибок, ну также не отображается результат.

Может из-за структуры БД?
Название БАЗЫ - NAMEBD
Таблица - USERS
Колонка: uid (id юзера) и date (дата в формате time()).
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
05.04.2015, 19:47
SQL
1
2
3
4
SELECT COUNT(uid)
    FROM USERS
WHERE date>$time_left
    AND date<$time_right;
Мой вариант:
SQL
1
2
3
SELECT COUNT(*)
    FROM `USERS`
WHERE `date` BETWEEN CURDATE() - INTERVAL 1 DAY AND CURDATE()
3
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
05.04.2015, 19:57
Цитата Сообщение от drow007
tolimadokara, поставил Ваш - не отображается ничего, кроме текста Количество зарегистрированных пользоватлей за прошедшие 24 часа. Даже 0 нету.
Выполните
PHP
1
echo $command;
Затем то что будет выведено в браузер выполните не посредственно в phpmyadmin. И смотрите как отработает этот запрос.

Можно так же смотреть ошибки через mysql_error не посредственно в ваше скрипте
PHP
1
echo mysql_errno() . ": " . mysql_error() . "\n";
Добавлено через 3 минуты

Не по теме:

Да, lyod. Надо изучить все возможности запросов :).



Добавлено через 2 минуты
drow007, возможно надо брать название таблицы и название поля где хранится дата в одинарные спец-кавычки `
SQL
1
2
FROM `USERS`
WHERE `date`
2
 Аватар для Seovin
79 / 79 / 36
Регистрация: 28.02.2014
Сообщений: 400
05.04.2015, 23:54
Цитата Сообщение от tolimadokara Посмотреть сообщение
$vrem = time() - 8640;
да опечатка (-0)
Цитата Сообщение от drow007 Посмотреть сообщение
Ошибка Parse error:
поправил
PHP
1
2
3
4
5
6
7
<? 
$vrem = time() - 86400;
$res = mysql_query("select count(*) from USERS where date > '". $vrem ."'");
$row = mysql_fetch_row($res);
$tota = $row[0];
echo $tota;
?>
1
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 37
06.04.2015, 00:14  [ТС]
tolimadokara, заработало после того как понял, что надо было написать USERS строчными буквами, тоесть users, Seovin, lyod, спасибо!!!!!!
0
06.04.2015, 23:44

Не по теме:

Цитата Сообщение от lyod Посмотреть сообщение
Мой вариант:
да...:scratch: надо открывать sql-справочник

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.04.2015, 23:44
Помогаю со студенческими работами здесь

Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12, . 24 часа
Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12, .... 24 часа.

Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12, ... , 24 часа ?
Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12, ... , 24 часа ? (HELP)

Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12,..., 24 часа. С использованием цикла.
Люди помогите решить лабу Я буду очень благодарна на любом из &quot;С&quot; Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить,...

Сохранить max за последние два 2 часа
Есть реальное время. Есть переменная temperatura: real; как мне за последние два часа, выводить максимум переменной??? Не могу...

Выборка данных за последние 24 часа SQLite
Необходимо получить данные из базы SQLite за последние 24 часа. В базе одна таблица с 3-мя колонками(широта, долгота и время). Время...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru